I think you might be making it more complex then it needs to be? Here's an example of what you could do.
You just need one parallel event. And have the move routes/selection of the opposite team there. Maybe an extra Variable for the NPC's choice, in case it effects the game later. Also, in this case, you don't want to have the conditional branch under a different else.
CODE
@>Show Choices:Grass, Fire, Water
:When [Grass]
@>Control Variables:[0145: Starter Choice]= 1
@>Play SE: '055-Right01',80,100
@>Set Move Route: [RivalNPC]
:$>Move Up
:$>Move Left
:$>Move Left
@>Control Variables:[0146:Rival Choice]= 2
:When [Fire]
@>Control Variables:[0145: Starter Choice]= 2
@>Play SE: '055-Right01',80,100
@>Set Move Route: [RivalNPC]
:$>Move Up
:$>Move Right
:$>Move Right
@>Control Variables:[0146:Rival Choice]= 3
:When [Water]
@>Control Variables:[0145: Starter Choice]= 3
@>Play SE: '055-Right01',80,100
@>Set Move Route: [RivalNPC]
:$>Move Up
:$>Move Up
:$>Move Up
@>Control Variables:[0146:Rival Choice]= 1
@>
:Branch End
@>