enemy AI doesnt work when enemy is spawned but does if it is already in the scene

i am making a simple enemy spawn system where i instantiate enemies at predetermined locations using empty game objects so that when they die i can make them spawn again rather than just having a lot of enemies in the scene that will not be usable again. however when i spawn them in the AI doesnt work unless i go into the inspector and add the player as the transform, it does not work if i do it before hand; i assign it but it just doesnt work in game. is there any way to fix this? i tried a few different things like assigning it when the enemy is spawned in the script which didnt work and having the variable on another game object already in the scene and then pulling it out in script which didnt work either because the player had to then be assinged as the transform. i am using this script:

spawn script placed on an empty game object

var dead   : boolean = true;
    var enemy  : Transform;
    function Update()
       if(dead == true)
    	     Instantiate(enemy, transform.position, transform.rotation);
    		 dead = false;

enemy AI script

var player : Transform
    var MoveSpeed = 4;
    var MinDist = 20;
    var maxDist = 60;
    var go = GameObject.Find("enemyspawn");
    function Update () 
        if(Vector3.Distance(transform.position,player.position) >= MinDist && Vector3.Distance(transform.position,player.position) <= maxDist ){
             transform.position += transform.forward*MoveSpeed*Time.deltaTime;

sorry if its a long question but i couldnt think of a shorter way to explain it lol but it confuses the hell out of me.

Check when this line is being called:
var go = GameObject.Find(“enemyspawn”);

Makes sense that it only works when in the scene from start, since you’re only finding “enemyspawn” at start.