Alright...
There is one last suggestion from me. It's a bit more complicated than the rest, and it may require some jass knowledge, or at least extended triggers knowledge, but it's bound to work:
Make a unit type of the transformation for the enemies (you probobly already have that).
Then when you cast the ability on an enemy unit - hide the unit, create a unit (of the beastial type) on its place, with owner = the owner of the hidden unit.
Do a check - if the owning player of the unit, had it selected (before hiding it) - re-select it for the player.
Add a timed life to the new unit, and either start a timer (if you know jass), either use a "wait" = the timed life of the beast unit - 0.1 seconds.
Link together the hidden unit, with the beast unit. Either trough indexing, either trough a hashtable.
If you want to be able to use this spell on heroes - you also need a DDS:
every time the beast takes damage - set the linked hero's life to the same % as the beast's life.
When the wait/timer is over - if the beast is alive, set the hidden unit's life to the same % as the beast unit, set its location to the beast unit's location, remove the beast unit, unhide the original unit. If the beast is dead - remove the hidden unit from the game.
If you want the beast to have relative HP/armor/damage to the original unit, then I'm sorry, but you'd need bonus mod (or at least you need to re-create parts of it)
You don't need many bearform/metamorphosis skills to do this
It works on all unit types.