rematches, not so much. depends what you want to do:
new location/same location
if you put a new NPC (sprite of the gymleader), you can do rematches anywhere so long as you script them.
if you use the same NPC, you'd have to edit their logic as they'd reaward the same badge to you. you can always check for an E4 completed -> branch to a rematch portion of the script that you add.