1. To prevent unnecessary heroes from appearing in the tavern, adjust the Map Properties => Heroes settings. Uncheck the boxes for all the heroes you don't want to see in the taverns. Note: Are the new heroes completely new, or are they modified versions of existing ones? P.S. I'm not sure if it's possible to set the price of a hero in the tavern using scripts...
2. Use the CreateCaravan function. Specify the coordinates of the end point as the tile just before the exit from the city.
3. Yes, Map Properties Tree => Moon Calendar Modifications => Block Monster Weeks => true.
Regarding the first point. I've created a series of scripted heroes, both main and secondary. I simply don't want to release a single hero to explore the map, as it's always annoying that the computer tries to seize a captured Castle, or I just want to save time and level up my main hero faster. But I don't want to allow regular, non-scripted heroes to appear. Let's just say I'm trying to create my own world. Perhaps it will help if I specify that a secondary hero is not a scripted hero; will it then appear in the tavern?