I would keep everything related to health for any unit in the Health.cs, and stats in BaseStats. Otherwise, you wind up having a LOT of corner cases to deal with things like “how do I damage a minion?”…
For example, Fighter.cs shouldn’t have to check to see if it’s target is a minion before applying damage, it should just get the Health component of the target and damage it.
When level is checked, especially from other classes, it should be from BaseStats, same with getting the damage, defense, or whatever other stat you may have.
So… when getting the Level in BaseStats, I would have a bool for IsMinion (or perhaps detect a Minion component on the character?)
public Level GetLevel()
{
if(experience!=null) return CalculateLevel();
if(IsMinion) return player.GetLevel(); //get the player in Awake()
return startingLevel;
}