I tried to to use the Set Default Pawn Class node but it has no effect, on map change the default pawn class has not changed.
I have a extra child pawn class for VR since the game can be played in VR and without VR but I currently have no way to switch those through blueprint.
There might be events in the GameMode blueprint that you can override to achieve what you need to do. In your custom GameMode blueprint, click on the green Add new drop down and select Override Function. There are two events that I can see that might be of use to you.
SpawnDefaultPawnFor
GetDefaultPawnClassFor
Both of these events take a PlayerController parameter and return a Pawn class.