Only Z velocity can be changed on client?

I’m trying to get my double jump implementation working right over the network, but when I try to add the ability to change direction in midair it won’t work on the client. The Z velocity works just fine, and if I just let the character’s momentum carry them forward then it works fine too. The problem is that when I change X or Y velocity it stops the client in midair, while the server player can jump exactly as intended. That DoMultiJump method is just called from within the DoJump method, so you can consider it the same thing.

bool UShooterCharacterMovement::DoMultiJump()
{
	if (CharacterOwner)
	{
		CurrentMultiJumpCount++;

		//Calculate lateral velocity change
		Velocity.Z = 0;

		FVector jumpVec = GetLastInputVector();
		float speed = Velocity.Size();
		jumpVec.Normalize();
		jumpVec *= speed;

		jumpVec = (Velocity + jumpVec)*0.5f;

		Velocity = jumpVec;

		//Apply jump velocity just like a standard jump
		Velocity.Z = JumpZVelocity*MultiJumpStrengthMultiplier;

		return true;
	}
	return false;
}