Health Numbers won't show up

I’ve set up my players to upon contact with NPC to transition to a Battle Scene (Ala JRPG style). I’ve gotten the UI to show up, it asks for turns in the dialogue and the slider updates with the health, but the TextMeshPro PlayerHealth and EnemyHealth shows the numbers being calculated right in the Scene view but not in the Game view (the numbers aren’t visible in Game view).
What am I doing wrong?

Heres my code:

// BattleSystem.cs
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using TMPro;

public class BattleSystem : MonoBehaviour
{
    public GameObject player;
    public GameObject enemy;

    public TMP_Text dialogueText;
    public Button attackButton;
    public Button defendButton;
    public Button magicButton;
    public GameObject magicListPanel;
    public Button[] magicOptions;
    public TMP_Text PHealth;
    public TMP_Text EHealth;

    private PlayerHealth playerHealth;
    private EnemyHealth enemyHealth;

    private enum BattleState { START, PLAYER_TURN, ENEMY_TURN, WON, LOST }
    private BattleState state;

   void Start()
    {
        if (player == null)
        {
            Debug.LogError("Player GameObject is not assigned in the Inspector.");
        }
        else
        {
            playerHealth = player.GetComponent<PlayerHealth>();
            if (playerHealth == null)
            {
                Debug.LogError("PlayerHealth component is not found on the Player GameObject.");
            }
        }

        if (enemy == null)
        {
            Debug.LogError("Enemy GameObject is not assigned in the Inspector.");
        }
        else
        {
            enemyHealth = enemy.GetComponent<EnemyHealth>();
            if (enemyHealth == null)
            {
                Debug.LogError("EnemyHealth component is not found on the Enemy GameObject.");
            }
        }

        state = BattleState.START;
        attackButton.onClick.AddListener(OnAttackButton); // Add button listener
        defendButton.onClick.AddListener(OnDefendButton); // Add button listener
        magicButton.onClick.AddListener(OnMagicButton); // Add button listener
        foreach (Button magicOption in magicOptions)
        {
            magicOption.onClick.AddListener(() => OnMagicOption(magicOption));
        }
        magicListPanel.SetActive(false); // Set the magic panel inactive at the start
        StartCoroutine(SetupBattle());
    }

    IEnumerator SetupBattle()
    {
        dialogueText.text = "A wild enemy appears!";
        yield return new WaitForSeconds(2f);

        state = BattleState.PLAYER_TURN;
        PlayerTurn();
    }

    void PlayerTurn()
    {
        dialogueText.text = "Your turn! Choose an action.";
        attackButton.gameObject.SetActive(true);
        defendButton.gameObject.SetActive(true);
        magicButton.gameObject.SetActive(true);
    }

    public void OnAttackButton()
    {
        if (state != BattleState.PLAYER_TURN)
            return;

        attackButton.gameObject.SetActive(false);
        defendButton.gameObject.SetActive(false);
        magicButton.gameObject.SetActive(false);
        StartCoroutine(PlayerAttack());
    }

    public void OnDefendButton()
    {
        if (state != BattleState.PLAYER_TURN)
            return;

        attackButton.gameObject.SetActive(false);
        defendButton.gameObject.SetActive(false);
        magicButton.gameObject.SetActive(false);
        StartCoroutine(PlayerDefend());
    }

    public void OnMagicButton()
    {
        if (state != BattleState.PLAYER_TURN)
            return;

        magicListPanel.SetActive(true);
    }

    public void OnMagicOption(Button selectedMagic)
    {
        if (state != BattleState.PLAYER_TURN)
            return;

        magicListPanel.SetActive(false);
        attackButton.gameObject.SetActive(false);
        defendButton.gameObject.SetActive(false);
        magicButton.gameObject.SetActive(false);
        StartCoroutine(PlayerCastMagic(selectedMagic.name));
    }

    IEnumerator PlayerAttack()
    {
        dialogueText.text = "You attack the enemy!";
        yield return new WaitForSeconds(1f);

        int damage = Random.Range(10, 20);
        enemyHealth.TakePhysicalDamage(damage);

        if (enemyHealth.currentHealth <= 0)
        {
            state = BattleState.WON;
            EndBattle();
        }
        else
        {
            state = BattleState.ENEMY_TURN;
            StartCoroutine(EnemyTurn());
        }
    }

    IEnumerator PlayerDefend()
    {
        dialogueText.text = "You defend yourself!";
        yield return new WaitForSeconds(1f);

        state = BattleState.ENEMY_TURN;
        StartCoroutine(EnemyTurn());
    }

    IEnumerator PlayerCastMagic(string spellName)
    {
        dialogueText.text = "You cast " + spellName + "!";
        yield return new WaitForSeconds(1f);

        int damage = Random.Range(15, 25); // Example damage value for magic
        enemyHealth.TakeMagicalDamage(damage);

        if (enemyHealth.currentHealth <= 0)
        {
            state = BattleState.WON;
            EndBattle();
        }
        else
        {
            state = BattleState.ENEMY_TURN;
            StartCoroutine(EnemyTurn());
        }
    }

    IEnumerator EnemyTurn()
    {
        if (enemyHealth == null)
        {
            Debug.LogError("EnemyHealth is null during EnemyTurn.");
            yield break;
        }

        dialogueText.text = "Enemy's turn!";
        yield return new WaitForSeconds(1f);

        dialogueText.text = "The enemy attacks you!";
        yield return new WaitForSeconds(1f);

        if (playerHealth == null)
        {
            Debug.LogError("PlayerHealth is null during EnemyTurn.");
            yield break;
        }

        int damage = Random.Range(10, 20);
        playerHealth.TakePhysicalDamage(damage);

        if (playerHealth.currentHealth <= 0)
        {
            state = BattleState.LOST;
            EndBattle();
        }
        else
        {
            state = BattleState.PLAYER_TURN;
            PlayerTurn();
        }
    }

    void EndBattle()
    {
        if (state == BattleState.WON)
        {
            dialogueText.text = "You won the battle!";
        }
        else if (state == BattleState.LOST)
        {
            dialogueText.text = "You were defeated.";
        }
    }
}

Hope everyone is having a good day.