Script doesn't work on duplicate objects. Please help

So I created a zombie with an EnemyController Script and after I finished everything, I duplicated it but the problem is that on the duplicate, the void Start() doesn’t work.

void Start()
{
    player = characterList.GetComponent<keepCharacter>().activeCharacter.transform;
    hp.SetMaxHealth(60);
}

The first one can find the character’s position and has his health bar full, but the duplicate does not. Please help.

Edit:
153223-untitled.png
I know that the function Update is being called because if I manually reference my player position(the reference should happen in Start function) the enemy starts moving (this happens in Update)
153224-untitled2.png

Finally, trying to find the problem, I changed the Start function in keepCharacter to an Awake function and now everything is fine.
void Awake() { index = PlayerPrefs.GetInt("CharacterSelected"); if (index == 1) { c1.SetActive(true); activeCharacter = cc1; } if (index == 2) { c2.SetActive(true); activeCharacter = cc2; } }