Character Movement Component Override CalcVelocity for custom velocity replication

Hello, I created a custom movement component which my character class uses. I am trying to override the CalcVelocity function in order to achieve some custom velocity functionality that I want replicated without writing a pawn class from scratch. The code is as follows:

Inside CalcVelocity

if (!bZeroAcceleration) 
	{

		FVector WishDir;
		FVector WishVel = FVector::ZeroVector;

		FVector TransformForward = FACharacter->ForwardVector;
		FVector TransformRight = FACharacter->RightVector;

		WishVel.X = TransformForward.X * WishMove.X + TransformRight.X * WishMove.Y;
		WishVel.Y = TransformForward.Y * WishMove.X + TransformRight.Y * WishMove.Y;
		WishVel.Z = TransformForward.Z * WishMove.X + TransformRight.Z * WishMove.Y;

		WishDir = WishVel;

		float WishSpeed = WishDir.Size();

		WishDir.Normalize();

		WishSpeed *= MaxSpeed;

		ApplyAcceleration(WishDir,MaxSpeed,MaxAccel,DeltaTime);
	}

ApplyAcceleration is the function taken from the Quake Source which mutates the Velocity variable based on a dot product between the desired vector direction in combination of Move inputs and Mouse input and adds velocity.

ApplyAcceleration(FVector WishDirection, float WishSpeed, 
float DynamicAcceleration, float DeltaTime) 
{
    	float AddSpeed;
    	float AccelerationSpeed;
    	float CurrentSpeed;
    
    	// Carmacks code
    	CurrentSpeed = FVector::DotProduct(WishDirection, Velocity);
    	AddSpeed = WishSpeed - CurrentSpeed;
    	if (AddSpeed <= 0.f)
    		return;
    
    	//TODO Delta?
    	AccelerationSpeed = DynamicAcceleration * DeltaTime * WishSpeed;
    	if (AccelerationSpeed > AddSpeed)
    		AccelerationSpeed = AddSpeed;
    
    	Velocity.X += AccelerationSpeed * WishDirection.X;
    	Velocity.Y += AccelerationSpeed * WishDirection.Y;
    	Velocity.Z += AccelerationSpeed * WishDirection.Z;	
    }

It seems that this is working properly on the server as the Client can see the server move around but the clients keep getting disagreement with the server and are stuck in the same position and don’t move.

Any approaches to this would be appreciated.