Help with RPCs

I’m new to RPCs and I’m looking for some clarification on what is going on within a set of calls and maybe some advice on how to proceed. Right now I’m working on updating character movement over the network. The world the characters move around in is spherical so I extended the character movement component to allow for this type of movement. If (HasAuthority()) then the movement appears to work correctly. Its the movement on the client side that I’m having trouble with. To test this in the editor I set the number of players to 3, and I keep dedicated server unchecked, so one of the clients acts as the server, and the others listen.

In the tick I have setup a server function that sends the calculated capsule rotation, and a second rotation for a component attached (we can ignore this, it’s only there because this component does not inherit Pitch, Roll, or Yaw).

SERVER_ChangeFacing(FRotationMatrix::MakeFromZX(Capsule->GetComponentLocation(), lastInput).Rotator(), FRotationMatrix::MakeFromZX(Capsule->GetComponentLocation().GetSafeNormal(), Waist->GetForwardVector()).Rotator());

Inside that call I set two replicated UPROPERTY, then call the an OnRep version

void AChar::SERVER_ChangeFacing_Implementation(FRotator facingRot, FRotator camRot)
{
	pawnFacing = facingRot;
	camFacing = camRot;
	OnRep_SetFacing();
}

Then inside the OnRep I set the actor rotation.

void AChar::OnRep_SetFacing()
{
	SetActorRotation(pawnFacing);
	Waist->SetRelativeRotation(camFacing);
}

What I’m seeing in game is on the server window all character move correctly. When I place them next to each other on any side of the world their heads point away from the center of the planet (the desired result). The problem is on the client. I Only the character being moved on the client has their head pointing the correct way. The other two characters appear to be rotated without this correction. Their movement is of course replicating, just not the corrected spherical planet orientation.