enabling text only working for one enemy

Hey there! This is my first time posting here so I apologize but I couldn’t find the answer so Hopefully someone knows what is going on.

basically I’m making a turn based RPG for fun and currently have two enemies in my battle scene. When I click on an enemy, a selection arrow appears over their head (working for both) and their name should appear on top of the screen.

However, when I run the game, only the 2nd gameObject of the enemies has this functionality working. i’m not seeing any console errors, and if i reorder them then whichever one is lower in the list on in the inspector, the functionality works.

I’m sure i’m missin gsomething simple… haha. Any ideas?

Thank you!

public class Enemy : MonoBehaviour {
    //Enemy statistics and information
    private SpriteRenderer sprite;
    private string monsterName;
    private int maxHealth;
    private int currentHealth;
    private int maxMana;
    private int currentMana;
    private int exp;
    public Type EnemyType;
    public Rarity EnemyRarity;
    private UIManager uiManager;
    private Text myUIText;
    private bool onObject = false;
    public Enemy targetEnemy;

    //Enemy Enums
    public enum Type
    {
        GRASS, FIRE, WATER, THUNDER, EARTH, LIGHT, DARK
    }

    public enum Rarity
    {
        COMMON, UNCOMMON, RARE, LEGENDARY
    }

    public string myMonsterName
    {
        get
        {
            return monsterName;
        }

        set
        {
            monsterName = value;
        }
    }

    public int myMaxHealth
    {
        get
        {
            return maxHealth;
        }

        set
        {
            maxHealth = value;
        }
    }

    public int myCurrentHealth
    {
        get
        {
            return currentHealth;
        }

        set
        {
            currentHealth = value;
        }
    }

    public int myExp
    {
        get
        {
            return exp;
        }

        set
        {
            exp = value;
        }
    }

    public int MyMaxMana
    {
        get
        {
            return maxMana;
        }

        set
        {
            maxMana = value;
        }
    }

    public int MyCurrentMana
    {
        get
        {
            return currentMana;
        }

        set
        {
            currentMana = value;
        }
    }

    void Awake()
    {
        SpriteRenderer[] enemySprites = gameObject.GetComponentsInChildren<SpriteRenderer>();

        foreach (SpriteRenderer enemySprite in enemySprites)
        {
            if (enemySprite.gameObject.transform.parent != null)
            {
                sprite = enemySprite;
            }
        }
    }
    // Use this for initialization
    void Start () {
        uiManager = GameObject.Find("UI Manager").GetComponent<UIManager>();
        myUIText = uiManager.enemyNameText;
        myMonsterName = "Wasp";
        myMaxHealth = 50;
        myCurrentHealth = myMaxHealth;
        MyMaxMana = 10;
        MyCurrentMana = MyMaxMana;
        myExp = 5;
	}

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            if (!onObject) {
                MouseDownOutside();
            }
            else
            {
                sprite.enabled = true;
                myUIText.text = myMonsterName;
                myUIText.enabled = true;
                targetEnemy = this;
                Debug.Log("Yes");
            }
        }
    }

    void OnMouseEnter()
    {
        onObject = true;
    }

    void OnMouseExit()
    {
        onObject = false;
    }

    void MouseDownOutside()
    {
        sprite.enabled = false;
        myUIText.enabled = false;
        targetEnemy = null;
    }
}

As an update, I am not instantiating my heros and enemies, rather than having them hard coded into the scene.
After instantiating 3 enemies into their proper positions, still for some reason the last one will be the only one that the monsterName works with.

So odd.