AttachToComponent on not locally controlled client

I’m running a dedicated server and connects with two clients.
When one of the client’s player character mount an animal, this works for that client, but on any other client the player just falls through the animal and ground and into oblivion.

A quick walkthrough of the code below:
A client clicks ‘E’ to ,mount the animal. This calls the MountAnimal(…) function, passing in the animalCharacter.
The MountAnimal function calls down to the server with the ClientSendMountAnimal(…) which only calls the ExecMountAnimal… now on server.
ExecMountAnimal(…) transfers the possession to the animalCharacter and then calls the MultiCast function MCOnMountCharacter(…)
On every client, the MCOnMountCharacter(…) does the AttachToComponent.

The result from the AttachToComponent is True on all clients.

.h:

		UFUNCTION(BlueprintCallable, Category = Mount)
		void MountAnimal(AAnimalActor* animalCharacter);

		UFUNCTION(BlueprintCallable, Server, Reliable, WithValidation, Category = Mount)
		void ClientSendMountAnimal(AAnimalActor* animal);
		void ClientSendMountAnimal_Implementation(AAnimalActor* animal);
		bool ClientSendMountAnimal_Validate(AAnimalActor* animal);

		UFUNCTION(BlueprintCallable, Category = Mount)
		void ExecMountAnimal(AAnimalActor* animal);

		UFUNCTION(NetMulticast, Reliable, Category = Mount)
		void MCOnMountCharacter(AAnimalActor* animal);
		void MCOnMountCharacter_Implementation(AAnimalActor* animal);

.cpp:

void AGameCharacter::MountAnimal(AAnimalActor* animal)
{
	if (HasAuthority())
	{
		ExecMountAnimal(animal);
		return;
	}
	ClientSendMountAnimal(animal);
}

void AGameCharacter::ClientSendMountAnimal_Implementation(AAnimalActor* animal)
{
	ExecMountAnimal(animal);
}

bool AGameCharacter::ClientSendMountAnimal_Validate(AAnimalActor* animal)
{
	return true;
}

void AGameCharacter::ExecMountAnimal(AAnimalActor* animal)
{
	animal->OriginalController = Cast<AAIController>(animalCharacter->GetController());
	GetController()->Possess(animal);

	MCOnMountCharacter(animal);
}

void AGameCharacter::MCOnMountCharacter_Implementation(AAnimalActor* animal)
{
	if(IsLocallyControlled())
	{
		GetWorld()->GetFirstPlayerController()->SetViewTargetWithBlend(animal, 0.3f);
	}

	SetActorEnableCollision(false);
	bool result = this->RootComponent->AttachToComponent(animal->GetMesh(),
		FAttachmentTransformRules(EAttachmentRule::SnapToTarget, EAttachmentRule::SnapToTarget, EAttachmentRule::KeepRelative, false),
		TEXT("CharacterMount"));
	ULoggingHelpers::DebugMessage(result, "Attaching character to animal worked");
}