i wish i could help a little more but im kinda lost here. just one thing…is the MyPawn asignation actually working? my guess is that you are stuck to that MyPawn (which is being used in the macro) and never unassign it after the repossess of the other pawn, so thats why the controller is still sending the input to that pawn. makes no sense tho, as you still should be able to move the repossesed pawn (but replicating the movement?), but makes sense since, if you avoid this logic, it works.
TL;DR: im probably making no sense