I use the pokered disassembly. When I played around with adding new trainers to routes, I tried using a sprite that was not previously on that route, and the result was a buggy mess of a sprite that had only one frame and not even of the sprite I wanted.
Tried looking around for some quite of sprite set or other limitation of which sprites can be displayed where, but I found nothing. Closest I could find is the trainer overworld engine
https://github.com/pret/pokered/blob/master/engine/overworld/trainers.asmbut even that doesn't seem to contain anything that would limit one to use any trainer sprite in any map.