Health not being calculated based on size in Start method?

I’m having a problem with the health being set to 0 as the game starts instead of it being calculated based on size in the start method. I have checked, and it is not a calculation issue. You should probably ignore the movement code and stuff and all you really need to know is that the object with the script below is also being cloned. Any ideas how to fix this?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class R_Enemy : MonoBehaviour
{
//Initialize Variables

private GameManager gameManager;

[Header("Movement")]
[SerializeField] private float startingMoveSpeed;
[SerializeField] private float speedMultiplyer;

private float actualSpeed = 0.06f;
[Space(20)]

[Header("Size Management")]
[SerializeField] private float startingSize;
[SerializeField] private float sizeDivisor;
private float pastSize;

[Space(20)]

[Header("Health System")]
[SerializeField] private int startingHealth;
[SerializeField] private int healthDivisor;
private int health;

[Space(20)]

[Header("Cloning")]
[SerializeField] private GameObject enemy;
[SerializeField] private int splitTimes;
[SerializeField] private int splitAmmount; 

private void Start()
{
    gameManager = GameObject.FindGameObjectWithTag("Game Manager").GetComponent<GameManager>();
    transform.eulerAngles = new Vector3(0, 0, Random.Range(-180, 180));
    for (int i = 2; i < splitTimes; i++)
    {
        if (transform.localScale.x == startingSize / ((i - 1) * sizeDivisor))
        {
            health = startingHealth / (healthDivisor * (i - 1));
            actualSpeed = startingMoveSpeed * (speedMultiplyer * (i - 1));
        }
    }
}

private void FixedUpdate()
{
    MoveInDirection();
    Warp();
    HealthSystem();
}

private void OnTriggerEnter2D(Collider2D collision)
{
    if (collision.gameObject.CompareTag("Laser"))
    {
        Destroy(collision.gameObject);
        if (gameManager.powerUp == "Powerup_Damage")
        {
            health -= 3;
        }
        else
        {
            health--;
        }
    }
}

private void MoveInDirection()
{
    transform.position += transform.right * actualSpeed;
    transform.position = new Vector3(transform.position.x, transform.position.y, gameManager.r_EnemyLayer);
}

//Movement Code: Warp

private void Warp()
{
    if (transform.position.x > 12)
    {
        transform.position = new Vector3(-11, transform.position.y, gameManager.r_EnemyLayer);
    }
    if (transform.position.x < -12)
    {
        transform.position = new Vector3(11, transform.position.y, gameManager.r_EnemyLayer);
    }
    if (transform.position.y > 8)
    {
        transform.position = new Vector3(transform.position.x, -7, gameManager.r_EnemyLayer);
    }
    if (transform.position.y < -8)
    {
        transform.position = new Vector3(transform.position.x, 7, gameManager.r_EnemyLayer);
    }
}

private void HealthSystem()
{
    if (health <= 0)
    {
        if (transform.localScale.x > startingSize / (splitTimes * sizeDivisor))
        {
            for (int i = 0; i < splitAmmount; i++)
            {
                Split();
            }
            Destroy(gameObject);
        }
        else
        {
            Destroy(gameObject);
        }
    }
}

private void Split()
{
    pastSize = transform.localScale.x;
    transform.localScale = new Vector3(transform.localScale.x / sizeDivisor, transform.localScale.y / sizeDivisor, 1);
    Instantiate(enemy);
    transform.localScale = new Vector3(pastSize, pastSize, 1);
}

}