Rotation replication doesn't work right?

Trying to replicate rotation of a flying pawn. So I need to replicate, pitch yaw and roll.
The replication works, I can see the server and the clients all rotating as they should, except the clients all rotate about half the speed they are supposed to. This isn’t usable like that. This kind of replication must be possible, for racing games etc out there.

I tried using the controller rotation instead, but for some reason when I use that its locked at 90 degrees and aside from that, when the pawn gets about 80 degrees in any direction, the yaw becomes the pitch and its all messed up.

Here’s a video of the behavior.

For the bp, I’ve basically just expanded the flying template… getting all the floats etc from inputs on the axis and then adding local rotation to the actor on tick. Then finally just getting the actor rotation on tick and having the server set rotation as a multi cast event. I’ve tried passing the actor rot to a server a event. Tried is locally controlled and switch has authority. I tried passing the rot to a repnotify rot var and having the server set it with the passed value. The repnotify would set rotation. All get similar results.

Sometimes(not often) it does rotate at the same speed but only once or twice and then its slowed again for awhile or til restart testing.

Any ideas on this?
Thanks.