Fireballs should probably have a shorter maximum range. As hilarious as it is to camp in front of the flag in capture the flag and shoot and endless barrage of fiery death, this probably isn't how you're supposed to play the game.
Heroes appear to only gain xp from damage they deal, not from damage their guards deal. Having guards actually slows level advancement, meaning that they need to rely on guards more, meaning their level advancement is slowed. I believe that damage dealt by abilities also doesn't count towards xp, but I'm not so sure.
To pass story quest #4, build enough units to prevent your hero from being killed, but not enough to destroy the mummy producer. Two peasant warriors with the weakest weapon work. Just wait until both die to replace them.
The attack speed mechanics are not bugged. What's going on is that, as games usually do, attack speed is displayed as the number of attacks over a specific period of time. However, for balance reasons, attack speed is actually calculated as the time elapsed between attacks. A 20% increase in attack speed works out to roughly a 16.7% decrease in time between attacks. This means that the faster you attack the less +attack speed benefits you. Almost every game involving attack speed calculates it this way.
Given that there's 20-30 demons on screen at any given time in survival, except for the very beginning and the very end, there's no reason whatsoever to use any attacking block other than worm blocks.
You know, traditionally when a game with enemies that hurt you through contact have teleporting bosses, there's a few lines of code that tells the boss not to teleport on top of the player.