If i'm undestanding, the hero block can be at any level, and you only want 1 to be allowed.
So in the case you have a hero block at level 1, and a hero block somewhere at level 2, you still only want the level 1 to show.
If you have hero blocks only at level 2, it should only show the first.
The only way i can think to do this is either through updating a macro/session value during the transformations (something like "If(IsHero && !HeroUsedAlready) { do transformation, set HeroUsedAlready to true } else { do nothing })
But this is still more advanced, i can kind of guide you on it but first confirm this is the situation, the tree helped but i didn't see any hero blocks labeled in it.