1.
about that greedisgood cheat, if you know the maximum gold/lumber player can get in single instance, you can use a timer with 0.25 sec interval which saves all players's gold and lumber (for gold example g1). each tick of the timer, you check the difference between g1 and current gold, and if the difference is greater than the maximum threshold for gold gain per tick, that player is using cheat, return their gold value to g1. the downside of this workaround, player can just cheat a low value repetitively to avoid check.
for whosyourdaddy cheat, set up 2 units for each player, 1 with 10 hitpoint with 100 hp regen with no attack, the other one has attack damage of 1 with 0.25 attack cooldown. give the ownership of attack unit to the each player and give the high hp unit to neutrals. order the unit with attack to attack the high hp unit. then run a timer in 0.25 sec interval. each tick of timer, check if the high hp is alive. whosyourdaddy cheat multiply damage dealt by 100, if the player is using whosyourdaddy cheat, that high hp unit will be dead, after that decide what you want to do with it.
2.
about that block ability, you can trigger the ability to check if the caster is in combat before heal take place (probably via boolean and hashtable), if its in combat, don't do the spell effect.