transform.parent == TheParentItShouldHave

hey im making a Multi player shooter where my player can get on top of boats and drive them

the Problem im having is that im lerping my local position to the last local position got from OnSerialize

but when i Get a board a boat i change my parent and like 1 out of 10 times the character goes aff the screen and returns

the reason i think this is happening is if im sending my local position when i have no parent its the equivalent of my global position but when i change my parent my network sends my position in my parent “LocalPosition” but the actual parent on other clients hasnt updated yet so they think its my position in the world “GlobalPosition”

the way ive been trying to fix this is checking if the parent im suppost to have is my actual parent if it is move me if it isnt dont move me.

code
if(transform.parent.gameObject) == playerNetwork.BoardedVessel)
{
transform.localPosition = Vector3.Lerp(transform.localPosition, NetworkPosition, 10f * Time.deltaTime);
}

player network is defined in my script the script.

the problem im having with this if statement is that if transform.parent.gameObject is null
and playerNetwork.BoardedVessel(which is the boat i should be parented to) is null

the its saying if(null== null) which i dont think is working.

please help if you have any ideas my qestions dont usally get answered
thanks ~Scott

i think i need to BUMP