Problems with Camera in networking with Unreal engine 4

I am currently working on a project where all my players use different Camera.

I first thought using UCameraComponent, but each camera has to turn around a certain point and not moving with the movement of the pawns.

So I decided to Spawn a Camera Actor in the BeginPlay() of my pawn.

void AMyCharacter::BeginPlay()
{
Super::BeginPlay();
if (!hasCamera) { // Camera not set yet
    FVector vectpos; // Target position of the camera
    vectpos.X = -1130;
    vectpos.Y = 10;
    vectpos.Z = 565;
    FRotator rotation;
    rotation.Pitch = -22;
    rotation.Yaw = 0;
    rotation.Roll = 0;


    APlayerController* controller = Cast<APlayerController>(GetController());

    if (controller == NULL) // When I'm on client, the GetController() return NULL.
    {
    // Trying to find the controller of my client
        for (FConstPlayerControllerIterator Iterator = GetWorld()->GetPlayerControllerIterator(); Iterator; ++Iterator)
        {
            controller = *Iterator;
            //On client, there is only 1 controller according to the documentation.
        }
    }

    if (controller != NULL)
    {
        controller->SetViewTarget(Camera); // Set the view with the new camera
    }
    SetCamera(true); // Call and RPC Function to update the hasCamera variable 
}
}

This is working for the first player, and after that it depends. Sometimes, the second player get a camera that works fine, but sometimes, he is viewing through the wrong camera and the Camera variable is not the same one he is looking in. Sometimes, when a new players join the game, it make the first/second player looking through the wrong camera.

Here is the GameInstance Blueprint we use to make the LAN Connection bewteen the clients and the server(the first client to create the game) GameInstance Blueprint

If someone can find why the cameras are not working as expected , it would be very nice ! Thanks you all in advance for your help.