When is PlayerController initalised?

In GameMode there is a function called GetDefaultPawnClassForController which you can override and return the Pawn you want for that particular Controller.