Repositioning a gameobject having NavMeshAgent

Peace be upon you!

I am currently making a zombie shooting game and facing a problem. All my zombies are spawned on specified destinations on the map by instantiating prefabs. Then I set the desired destination for the NavMeshAgent in order to keep it moving.
When the zombie dies, it has to reposition itself back to the original location.
However, when I set its initial position again, it sometimes appears right in front of me on the map instead going back to its originial location.

If I repeat the same thing by switching off the agent by writing

agent.enabled = false;

it does reposition correctly but then destination is never reached. Unable to get whats the exact problem. Help!!!

you really need to post the code that does these things in order for anyone to really help here…

When a zombie dies, following code executes:

                         if(flag == "dead")
                        {
                                isDead = true;
				animController.doDead();
				navMeshAgent.speed = 0;
				navMeshAgent.Stop(true);
				MissionManager.respawnRemainingEnemies(gameObject);
                        }

And the function in MissionManager is as follows:

        public void respawnRemainingEnemies(GameObject diedEnemy)
	{
		if(leftToReposition > 0)
		{
			//Get random invisible position from the array
			Debug.Log ("&name" + diedEnemy.name);
	
                        //The array 'enemyInvisiblePos' contains gameObjects on the map whos transform.position is being set for the zombie
			int randomNumber = (int)Mathf.Floor(Random.Range(0, enemyInvisiblePos.Length)); 
			//Reposition the enemy
			diedEnemy.GetComponent<ZombieController>().reposition(enemyInvisiblePos[randomNumber]);
			leftToReposition--;
		}
		else
		{
			GameObject.Destroy(diedEnemy,3.5f);
		}
		
		this.enemyKilled++;
		
		if(this.enemyKilled >= missionInfo.totalEnemiesToKill)
		{
			MissionManager.CompleteMission();
		}

And this is how I reposition:

                gameObject.transform.position = objPos.transform.position;
		this.initialize();
		isDead = false;
		
		//this.disable();
		animController.doWalk(Direction.STRAIGHT);
		Debug.Log ("&repositioned");

Now after all the code, the zombie must go back to the actual location (not visible from the shooter angle), but instead, it shows up somewhere in front of the shooter and the transition from dying animation to becoming alive again becomes visible. I have clearly noticed that NavMeshAgent stops it from repositioning itself. If I disable the navMeshAgent, the code runs perfectly fine.