For number 1, you need a damage detection system. As the hero is the one being attacked, you can use 2 events for it in a constant trigger. When the hero is attacked you start a timer and (which if expires the attack fails). If the hero then takes damage from the same source as an attack, you were attacked so you can reheal your hero.
For number 2, you simply make a trigger that when the unit starts the effect of a spell, you make a dummy unit, add that spell to it and then make the dummy unit cast the spell as the same target the hero was. Any mana loss or cost can be transfered if that is desired.