well... maybe you should try to implement a damage detection system made in jass ... a DDS made in gui can also detect damage taken for many units... but jass is a lot better
else
here is the main idea...
there is an action: "add event to trigger" where you can add an event to a trigger (duh!) but the thing with it is that you can add a unit variable to an event of "takes damage" for IE:
unit starts the effect of an ability
ability beeing cast = to blabla
add to trigger (damage detection) (Castin unit) takes damage
this will make as event in a trigger called "damage detection" your casting unit takes damage
making posible for you to detect when any unit added via this trigger takes damage
the problem is that events are never deleted (even if the unit dies... those events stay there)... if you need (and wanna keep going with this) i can try to help you a little bit more
unit is attacked fires when the attackers raises his hand... not when the attacked takes damage... so Attacked unit will not work... once you have detected the damage taken by a unit make a trigger that deals "damage taken * 0.something" to (any unit)
Unit is attacked
attacking unit equal to your hero
trigger - turn on X unit tages damage trigger
----
X unit takes damage
Damage source = to (The hero who has splash ability)
trigger - turn off this trigger
all of the other actions
---
A unit starts the effect of an ability
Castin unit equal to (the unit that has splash damage ability)
trigger - turn off X unit takes damage
---
youll need all of those triggers/actions to make it work... but even thou it has its flaws... as i said... i recommend a damage detection system... but this may work... not 100%... perhaps a 70%~80%
EDIT: if you add an event for a unit that has already been added it will be added again... you have to use a unit group and check if the unit is in that group... if it is not then add the unit to the event and add the unit to the group... else dont add it to the event