I tend to have a team that can have Pokemon within 5 levels over or under by the time I’m at the champion. For Cynthia I have always consistently used a Torterra, Lucario, and either a Dialga for Diamond or a Giratina for Platinum. Having a legendary might have helped matters some in truth since I know many people will choose not to use them. Then I have often used both Staraptor for diamond and Togekiss for platinum as my flyers. Pokemon like Floatzel, Vaporeon, or Gyarados are often my swimmers. I’ve also used Glaceon, Roserade, Luxray, Gallade, Gardevoir, and on occasion I have used Pokemon like Vespiquen, Glalie, Honchkrow, And Tyranitar.
All these Pokemon would have different coverage moves and items that help out that Pokemon in some small way. If a Pokemon has a draining move, Big Root. If that Pokemon has a very varied coverage move pool, Expert Belt. If the Pokemon was slow, Quick Claw. Special attackers get Wise Glasses, physical attackers get Muscle Band. If I needed a certain move to be a bit stronger, a plate or item for that move’s type. Leftovers for someone I thought needed a bit of healing aid and so on. On top of that, I’m one that likes to keep lots of healing items on my person.
Like I said, I could have been lucky, just pretty patient or something else.....however, I tended to have the same luck with Cynthia as I have with most of the other champions. She definitely has a team that requires a bit of thought due to having various types on her team but in that regard she is like your rival that always tends to have a wider array of coverage. Not patting myself on the back or anything, I have been beaten by random trainers plenty of time in the games. Champions however, I’m usually adept at handling them.