Q u o t e: Ok new problem... although I can now only train 3 heroes, it will still let me train the same hero 3 times. And yes, the melee trigger for 1 hero is set in initialization.
I decided to see if I could start to learn how to fill the last Tavern slot with a custom hero. I opened up a map (Wetlands, in this case), saved it to a new name, and got to work on it. I had the same problem as you did here even though the earlier items mentioned in this thread were in order, but I finally think it works now that I added this:
For each (Integer A) from 1 to 12, do (Actions)
Loop - Actions
Player - Limit training of Your New Hero Unit to 1 for (Player((Integer A)))
Now the new hero disappears from the Tavern just like the other ones do after buying. I only tested it by myself as Player 1 against the computer, so I can't say for sure it works completely.
As I used a 4 player map, 1 to 4 might be enough.
Let me know how it goes. Took me a while to figure out even though I read to look for the Player - Limit... thing because I'm very inexperienced with the editor.