To get my PlayerNum variable to appear in spawn actor from class, go to your blueprint you will be spawning, select the variable and check the Expose on Spawn button.
As for getting rid of the mystery pawn, I believe it ended up being an error on my part. I ended up just spawning an actor and possessing it with the next available player slot. I did that in a loop, that iterrated as many times as I had players (so 2, 3 or 4 times.) In the end, each player slot.
I think the loop went something like Loop Body > Create Player (-1) > Spawn actor of class (PlayerNum = Index of loop) > Possess Pawn (the spawned actor from before) > End.
So it creates a player at the next available slot, spawns a pawn with the playerNum variable exposed, and that is set by the iteration of the loop, so if its the 2nd time, thats player 2’s pawn, if its 3rd time, its player 3 etc etc. and then I posses it with that player slot/controller.
In my pawn setup i basically had the A button go through a Switch on Int. The playerNum was the int. So if player 2 pressed their button, it went down the 2 chain and did some special ability only player 2 should have, etc etc.
Hope that helps.