How to reparent an object using NetworkObject.TrySetParent()

I am making a game where the player is a spaceship that flies between planets. When the ship lands on a planet, it should parent to that planet to keep it from falling off.
This works fine for the host player, however client players will not reparent to the planet objects, and no errors are given. Through experimentation, it seems the RPCs aren’t even being called.

Please advise on any methods I can use to set and clear the parent of the player ship.

Parent to Nearest Body is a script called in the Update of the Ship script, which is the player controller script.

public class Ship : NetworkBehaviour
{
void ParentToNearestBody()
    {
        if (Vector3.Distance(transform.position, nearestBody.transform.position) < (snapHeight + nearestBody.radius))
        {
            //The ship is close enough to land, parent to the planet
            ParentToObjectServerRpc();
        }
        else
        {
            //Clear parent
            ClearParentServerRpc();
        }
    }

[ServerRpc]
    public void ParentToObjectServerRpc()
    {
        NetworkObject.TrySetParent(nearestBody.gameObject, true);
    }

    [ServerRpc]
    public void ClearParentServerRpc()
    {
        NetworkObject.TryRemoveParent(true);
    }
}

Then that‘s the problem, not reparenting.

Which of these RPCs isn‘t called? On what end? Is ParentToNearestBody() called to begin with?

As I said, ParentToNearestBody is called in Update().
Also, I have made further discoveries: The RPC is now being called; why it wouldn’t execute the debug log or end application commands I have no idea.
I found that the server-side version of the ship does not have a nearestBody set. Therefore I’ve called my FindNearestBody function in the RPC. With transform.parent this kind of worked if you got ahead of the planet. However, with TrySetParent() the client ship cannot enter the landing range of the planets.

All this aside though, what is the proper way to use NetworkObject.TrySetParent() or any other function to change the clients’ parent at runtime??