I'm not an expert, but you can configure different trainers with the same sprite.
Basically that's what you do when you use a regular trainer type(let's say...bug catchers)
In red/blue/green Blue/Gary has different stages, and his sprite changes almost every time you battle him.
What i would do if i were to do different rival battles would be to just make a trainer type named RIVAL, with the same name (considering your rival won't change their name) and then i could just add different pokémon to each one of the "rivals", and use different sprites if you want. Haven't tested it, but it's an idea.
That would be just like making a regular trainer type, what will make it "consistant" would actually be just the trainer sprite(the character) and the name.