My script to kill the player and respawn, does nothing?

I’ve been trying to get answers from on here for a day or 2 now, and I cannot seem to find one. Each answer = new question. I think I am getting closer, before I had an error, now it just doesn’t do anything. (I probably did something stupid somewhere) I am very new to coding, so don’t expect me to understand a lot (Do you know any good tutorial series?). I basically want to get rid of the PlayerMovement, and then 2 seconds later get rid of Mesh, BoxCollider, if Health <= 0, (In case it goes negative or something). And then, after five seconds, I want all three of those to come back. And then, Health = 100. I thought I had the code right, but when health = 0, nothing happens. Thanks in advance for the help (And possibly a good series to watch on youtube for c# coding)

Here is the script:

using UnityEngine;
using System.Collections;

public class AttributeDeclaration : MonoBehaviour {
	#region Public ints
	public int Health = 100;
	public int Magic = 100;
	public int Strength = 100;
	public int Stamina = 100;
	public int Defense = 100;

	//Maximum attributes
	public int MaxHealth = 100;
	public int MaxMagic = 100;
	public int MaxStrength = 100;
	public int MaxStamina = 100;
	public int MaxDefense = 100;

	//Testing Stuff
	public int DamageAmount = 20;

	//---------------------------------------------------------------------------------------------
	#endregion

	public PlayerLevelDeclaration PT;
	public PlayerMovement PM;
	public HealthPotion HP;

	//----------------------------------------------------------------------------------------
	void Awake(){
		newPos = transform.position;
	}
	//-------------------------
	// Use this for initialization
	void Start () {
	}
	//-----------------------------------------------------------------------------------------
	// Update is called once per frame
	void Update () {
		PT = gameObject.GetComponent<PlayerLevelDeclaration>();
		HP = gameObject.GetComponent<HealthPotion>();
		PM = gameObject.GetComponent<PlayerMovement>();

		TempDamageHealth();
		TempDamageStamina();
		TempDamageMagic();
		TempDamageStrength();
		TempDamageDefense();

		DisallowNegative();

		KillPlayer();
	}
	//----------------------------------------------------------------------------------------
	void DisallowNegative(){
		if(Health <= 0)
		{
			Health = 0;
		}
		if(Stamina <= 0)
		{
			Stamina = 0;
		}
		if(Magic <= 0)
		{
			Magic = 0;
		}
		if(Strength <= 0)
		{
			Strength = 0;
		}
		if(Defense <=0)
		{
			Defense = 0;
		}
	}
	//-----------------------------------------------------------------------------------------

	public int TempDamageHealth()
	{

		if(Input.GetKeyDown(KeyCode.Keypad1))
		{
			Health = Health - DamageAmount;
		}
		return Health;
	}
	//-------------------------------------------------------------------------------------
	public int TempDamageStamina()
	{
		
		if(Input.GetKeyDown(KeyCode.Keypad2))
		{
			Stamina = Stamina - DamageAmount;
		}
		return 	Stamina;
	}
	//--------------------------------------------------------------------------------------
	public int TempDamageMagic()
	{
		
		if(Input.GetKeyDown(KeyCode.Keypad3))
		{
			Magic = Magic - DamageAmount;
		}
		return Magic;
	}
	//------------------------------------------------------------------------------------------
	public int TempDamageStrength()
	{
		
		if(Input.GetKeyDown(KeyCode.Keypad4))
		{
			Strength = Strength - DamageAmount;
		}
		return Strength;
	}
	//----------------------------------------------------------------------------------
	public int TempDamageDefense()
	{
		
		if(Input.GetKeyDown(KeyCode.Keypad9))
		{
			Defense = Defense - DamageAmount;
		}
		return Defense;
	}
//--------------------------------------------------------------------
	Vector3 newPos;
	bool IsAlive = true;
	IEnumerator KillPlayer(){
	if(Health <= 0)
		{
			IsAlive = false;
			Health = 0;
			//Hopefully this makes it so the player can't move as soon as Health = 0, but doesn't disappear and lose 
			//collision until after 2 seconds. Then, 5 seconds later, the player's position is set to 0, 0, 0, and 
			//He regains movement, reappears, and regains collision.

			//Kill Player
			PM.enabled = false;
			yield return new WaitForSeconds(2f);
			renderer.enabled = false;
			collider.enabled = false;
			PM.enabled = false;
					
			//Wait 5 seconds
			yield return new WaitForSeconds(5f);

			//Set position code;
			Vector3 PlayerSpawn = new Vector3(0f , 0f , 0f);
			newPos = PlayerSpawn;
			transform.position = newPos;
			//Rest
			renderer.enabled = true;
			collider.enabled = true;
			PM.enabled = true;
			IsAlive = true;
			Health = MaxHealth;


		}
		yield return IsAlive == true;
	}

}

You need to call your KillPlayer() coroutine using either of the methods provided by @Sir-Irk.

I would also suggest you to not call your KillPlayer() coroutine from Update rather call it only once when the health is zero. You can do it from the disallowNegative() function as below:

void DisallowNegative(){
 if(Health <= 0)
 {
     Health = 0;
     StartCoroutine(KillPlayer());  // Or you can also use StartCoroutine("KillPlayer");
 }