It maybe related to the Controller current state,because Controller current state is a not replicated value, then may keep the client in other state. So, you can try let all clients call PC->ChangeState(NAME_Playing); after you Possess the Pawn on server side, for example:
// in your game mode code
Itr->Possess(Cast<APawn>(NewHumanPawn));
// add this line
Itr->ClientChangeState();
Just give a clue, not sure it work or not, beside, Unreal already have a awesome Gameplay framework to organize the game mode, pawn, controller this kind of stuff, you can try to read ShooterGame and UE4 source code, and draw some code maps, it works for me
when i try to possess a pawn that i spawned in my custom game mode, it only works on the listen server and on none of the clients
the clients cameras move over to the spawn but i cant move the camera or the pawn. on the listen server it replicates correctly to the other clients and the pawn is movable
heres the function that’s called that spawns the pawns and possess them