That's hardly a wall of text. No apologies needed. Do I understand correctly, you want the icon of the initially disabled hero to show at the beginning of the game. Then upon the happening of a certain event you want the hero to become available. The hero is trained by an alter or sold in a shop. Am I right so far?
Ok, so what you want to do is set the tech-requirements of the hero in object editor. Set the research as a requirement and this should work. Also, add this hero to gameplay constants.
Another way may be to make it unavailable by trigger and then upon the event in question make it available. This will however make the icon disappear at the start and reappear later.
Finally, you may use an "out of stock" dummy hero. Then upon the happening of the event replace it with the real hero. You could make other dummy types too using a DISBTN icon and exporting it and importing it as a new name starting with BTN. Now make the unit free and have no model. When the player clicks on it nothing will happen. Maybe remove the unit from game by trigger. Set the tool tip to explain why it is not available. Once the condition is satisfied, switch the dummy out for the real hero. Sorry, I don't have WE with me, so I can't post the triggers.
Almost a wall of text. Hope I helped.