I’m not 100% sure, but it looks like with this setup you’re trying to move actual player pawns to location of Player GM on tick? I’m not surprised this is laggy, since you’re doing quite a lot of communication between clients and server on tick, which is inadvisable. To answer your question specifically, I am guessing that reason rotation doesn’t match is because you’re changing Control Rotation, but pawn itself isn’t set to match control rotation.
Using Set View Target with Blend is going to be much better for networking, as well as being much simpler to set up with fewer side effects.
Another possibility, though I haven’t tested, is to have each player character spawn a camera actor in level and attach each of them to Player GM. This way they should move where GM is, but maintain individual rotation. Then you can have each player Set View Target to one of cameras, and implement their own control over its rotation. Not sure how network efficient that would be, though I don’t expect it would be if set up correctly. Not sure if that’s what you’d want, either =P