How can I have multiple players control one pawn and show characters inside?

A player controller doesn’t HAVE to control a pawn, and a moving object doesn’t HAVE to have a player controller.

If you have animated characters for each player, then perhaps the best way to do this is to make the boat be a fifth actor, which isn’t a pawn. Instead, each character is a pawn. The connection to the boat can go through the character, ALTHOUGH you’d probably want to make the animation for those characters be driven by oar movement, rather than the other way around.

So, Player controller gets input, forward the input as some abstract “stroke position/forward” data to the Character; the Character then knows which Boat it’s anchored to (if any,) and forwards its stroke to the boat; the boat would simulate adding forces for each of the input characters in its step.

If there aren’t any people/characters, then you can use player controllers without any direct Pawn; instead just find the boat somehow (maybe get objects of class) and tell it directly how much each player is contributing and when.

And, yes, I agree: When building a networked game, gameplay, architecture, and implementation all need to be designed from the ground up to work in a networked environment. Anything else just leads to de-sync, lag, and glitches.