I figured it out. Mercy, it was silly. Turns out it has nothing to do with pawn or player at all. I was manually setting the rotation of the ships skeletal mesh when it was not possessed by a player.
This was super legacy code from my first attempts at learning Unreal from months ago, before I started multiplayer or any networked physics stuff. I had a fork in the tick of the ship that was if (ControlledByPlayer) do “PlayerControlledTick”, else “DoAIControlledTick”. AI controlled tick set the rotation of the ship to face where it was trying to go, completely undermining and fudging up the new NetworkPhsyics.
Sorry for wasting everyone’s time. Particularly mine. Game dev is hard.