Use Damage detection system (DDS) - it's a system that can be downloaded here on hive.
With this system you can modify damage taken by any unit. So what you could do is to create an aura that does nothing but give a buff (e.g. a devotion aura that does not increase armor). Create a trigger that uses the DDS's event to detect when any unit takes damage. If that unit has buff from your custom aura, then calculate 25% of damage taken, call a function from the DDS to heal to unit for the calculated amount and then null damage taken.