How to show all GUI.Windows even if they overlap with a custom style

So I have these GUI windows that hover above Enemies etc… giving there information. I also have small windows that appear and drift upwards when u do damage however these windows do not show unless I stop showing the enemy GUI. I am using a custom style on them both. Any advice would be greatly appreciated. Many thanks.

This is the Enemy Code:

using UnityEngine;
using System.Collections;

public class Enemy : MonoBehaviour {

	public GameObject NameTag;
	public GameObject GameManager;

	public int EntityID;
	public int EnemyType;

	public int MaxHealth;
	public int Health;

	public int Speed;

	public Vector3 position;

	public string EnemyName;

	public Texture2D negHealth;
	public Texture2D posHealth;

	public GUIStyle WindowStyle;

	// Use this for initialization
	void Start () {
		//NameTag.GetComponent<TextMesh> ().text = EnemyName;
		GameManager = GameObject.FindGameObjectWithTag ("GameManager");
	}
	
	// Update is called once per frame
	void Update () {
		if (Vector3.Distance (transform.position,position) > 0.5) {
			transform.LookAt(position);
			transform.Translate(Vector3.forward * Speed * Time.deltaTime);
		}
	}

	void OnGUI () {
		Vector2 position = Camera.main.WorldToScreenPoint (transform.position);

		GUIStyle style = GUI.skin.GetStyle ("Window");
		style.alignment = TextAnchor.LowerCenter;

		GUI.Window (0, new Rect (position.x - 35, Screen.height - position.y - 50, 70, 50), EnemyContent, "", WindowStyle);

		}

	public void EnemyContent (int WindowID) {
		GUIStyle style = new GUIStyle ();
		style.alignment = TextAnchor.LowerCenter;
		GUI.Label (new Rect (0,0,70,25), EnemyName, style);
		GUI.DrawTexture (new Rect (0, 30, 70, 5), negHealth, ScaleMode.StretchToFill);
		GUI.DrawTexture (new Rect (0, 30, 70 * ((float)Health / (float)MaxHealth), 5), posHealth, ScaleMode.StretchToFill);
	}

	public void Damage (int RawDamage) {
		Health -= (int)(RawDamage * Random.Range (0.1f, 2f));
	}

	public void Hit (int Damage,int AttackType,int RelevantLevel,int NetworkID) {
		GameManager.GetComponent<Network> ().AttackHit(EntityID,Damage,AttackType,RelevantLevel,NetworkID);
	}

	public void updateEnemy (int EntityID, int EntityType,float x, float y, float z,int MaxHealth,int Health) {
		this.EntityID = EntityID;
		this.EnemyType = EnemyType;
		updatePositon (x, y, z);
		this.MaxHealth = Health;
		this.Health = Health;
	}

	public void updatePositon (float x, float y, float z) {
		position = new Vector3 (x, y, z);
	}

	public void HitResponse (int AttackType,int Damage) {
		Debug.Log ("Called");
		GameObject HitText = (GameObject)Resources.Load ("Combat/HitText") as GameObject;
		GameObject temp = GameObject.Instantiate (HitText,transform.position, new Quaternion (0, 0, 0, 0)) as GameObject;
		temp.GetComponent<HitText> ().AssignInfo (AttackType, Damage);
	}
}

This is the HitTextClass:

using UnityEngine;
using System.Collections;

public class HitText : MonoBehaviour {

	public Texture2D[] HitTypes;

	public Texture2D TextureToShow;
	public string Damage;

	public float LifeTime;
	public float DeathTime;

	public float YOffset;

	public Vector3 position;

	public GUIStyle WindowStyle;

	// Use this for initialization
	void Start () {
		DeathTime = Time.time + LifeTime;
	}
	
	// Update is called once per frame
	void Update () {
		if (DeathTime < Time.time) {
			Destroy(gameObject);
		}

		YOffset += 0.5f;
	}

	void OnGUI () {
		if (TextureToShow != null) {
			Vector2 position = Camera.main.WorldToScreenPoint (transform.position);

			GUIStyle style = GUI.skin.GetStyle ("Window");
			style.alignment = TextAnchor.LowerCenter;

			GUI.Window (0,new Rect (position.x - 25, Screen.height - position.y - YOffset, 50, 15),Information,"",WindowStyle);
		}
	}

	public void Information (int WindowID) {
		GUIStyle style = new GUIStyle ();
		style.normal.textColor = Color.green;
		style.fontStyle = FontStyle.Bold;
		style.fontSize = 15;
		GUI.Box (new Rect (0, 0, 15, 15), TextureToShow,GUIStyle.none);
		GUI.Label (new Rect (15,0,35,15), Damage, style);
	}

	public void AssignInfo (int AttackType, int Damage) {
		this.TextureToShow = HitTypes [AttackType];
		this.Damage = Damage + "";
	}
}

In case anyone was wandering I figured this out. It was because the window ID’s where not unique as they all had the same one. Simply solved this by having a counter in the gamemanager and then had all of the GUI elements request a WindowID so that it is unique.