Photon Multiplayer | Health Synchronisation Problem

Can anyone help me with an issue, regarding to synchronize the health of a character?
My issue / problem is that when I rejoin with my second device, the health of the enemy is again at 100%, even though, on my first device that didn´t rejoin, the health is lower than 100%.

Here is the code of the HealthSystem Script, that I use. (It´s from a tutorial by CodeMonkey. Please watch it, if it helps you understand the working of it better, in order to help me.

)

using System;
using UnityEngine;
public class HealthSystem
{
    public static HealthSystem healthSystem;


    public event EventHandler OnHealthChanged;

    private int health;
    [HideInInspector]public int healthMax;



    public HealthSystem(int healthMax)
    {
        this.healthMax = healthMax;
        health = healthMax;
    }

    public int GetHealth()
    {
        return health;
    }

    public float GetHealthPercentage()
    {
        return (float)health / healthMax;
    }

    public void Damage(int damageAmount)
    {
        health -= damageAmount;
        if (health < 0) health = 0;
        if (OnHealthChanged != null) OnHealthChanged(this, EventArgs.Empty);
    }

    public void Heal(int healAmount)
    {
        health += healAmount;
        if (health > healthMax) health = healthMax;
        if (OnHealthChanged != null) OnHealthChanged(this, EventArgs.Empty);

    }
}

Here is the EnemyHealth Script, that creates a new HealthSystem, which gives the health of the Enemy a value.

using Photon.Pun;
using System.Collections;
using UnityEngine;

public class EnemyHealth : MonoBehaviour, IPunObservable
{
    public HealthSystem healthSystemEnemy;

    //HealthBar linking to manage the damage and healing
    public HealthBar healthBar;

    [HideInInspector] public int enemyHealth = 300;


    private void Start()
    {
        healthSystemEnemy = new HealthSystem(enemyHealth);
        StartCoroutine(GetNeededComponents());

        StartCoroutine(OnEnemyDeath());
    }

    IEnumerator GetNeededComponents()
    {
        yield return new WaitForFixedUpdate();

        healthBar = GetComponentInChildren<HealthBar>();

        //Manage Damage and Heal on the HealthBar
        healthBar.Setup(healthSystemEnemy);

        yield return new WaitForSeconds(3);
        StopCoroutine(GetNeededComponents());
        //Debug.Log("Coroutine Stopped");
    }

    public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
    {
        if (stream.IsWriting)
        {
            // We own this player: send the others our data
            stream.SendNext(enemyHealth);
        }
        else
        {
            // Network player, receive data
            enemyHealth = (int)stream.ReceiveNext();
        }
    }

    IEnumerator OnEnemyDeath()
    {
        yield return new WaitUntil(() => healthSystemEnemy.GetHealthPercentage() == 0);
        {
            Debug.Log("Enemy Died");
            StopCoroutine(OnEnemyDeath());
        }
    }
}

Below here is the HealthBar Script, which handles the view of the Health, on the Healthbar:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HealthBar : MonoBehaviour
{

    private HealthSystem healthSystem;

    public void Setup(HealthSystem healthSystem)
    {
        this.healthSystem = healthSystem;

        healthSystem.OnHealthChanged += HealthSystem_OnHealthChanged;
    }

    private void HealthSystem_OnHealthChanged(object sender, System.EventArgs e)
    {
        transform.Find("Bar").localScale = new Vector3(healthSystem.GetHealthPercentage(), 1);
    }
}

Last, but not least, here is the PlayerCombat Script, that helps the Player damage the Enemy.

using Photon.Pun;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerCombat : MonoBehaviour
{
    //Combat components
    public static PlayerCombat playerCombat;

    public Transform attackPoint;
    public float attackRange;
    public LayerMask enemyLayers;

    public EnemyHealth EH;
    public PhotonView PV;

    //Damage amount
    [HideInInspector] public int attackDamage = 50;


    private void Awake()
    {
        playerCombat = this;
    }

    private void Start()
    {
        attackPoint = GetComponentInChildren<AttackPoint>().transform;
        PV = GetComponent<PhotonView>();
    }

    public void AttackEnemy()
    {
        //Detect enemies in range of the attack
        Collider[] hitEnemies = Physics.OverlapSphere(attackPoint.position, attackRange, enemyLayers);

        //Get the right EnemyHealth
        EH = GameObject.FindGameObjectWithTag("Enemy").GetComponent<EnemyHealth>();

        //Damage enemies
        foreach (Collider enemy in hitEnemies)
        {
            EH.healthSystemEnemy.Damage(attackDamage);
        }
    }


    private void OnDrawGizmosSelected()
    {

        if (attackPoint == null)
            return;

        Gizmos.DrawWireSphere(attackPoint.position, attackRange);
    }
}

I'm having the same issue in my project, and I can't find anywhere how to solve it, did you resolve this problem? if you got it could you tell me how to solve it? sorry for can't help you.