My suggestions? Against Lorelei, bring in an eletric type. I don't advise grass-types, because Lorelei's pokemon use a lot of ice-type moves, and ice smashes grass. I'd suggest gyarados against Bruno, 'cause it can learn flying moves to knock down the fighting-types in addition to Surf, or whatever you want to use against onix. Against Agatha, a good fire-type or anything that knows dark-type moves. Ice-types would be good against Lance, but if I remember right, he has dragons with electric-type moves, so dragon-types might be a more safe route.
Mr. Rival's starter will be his strongest pokemon, so what you should use against him would vary. :3