No need to destroy the effect and create a new one if unit is already registered. Just keep the old.
Set Danku_SpellTarget = (Picked unit)
Set Danku_Value = (Custom value of Danku_SpellTarget)
^This is not needed if Danku duration ends. The variables are already set before.
I like it that you make all group operations optional.
In DankuShield, when the limit is reached and you remove Danku...
you can check if unit was in Group, so you can directly remove it and
decrement the grouo counter. (no need to wait the duration it that case)
Custom script: set udg_Danku_UnitGroup = CreateGroup()
^Do not do this. You overwrite an already existing group. -> Leak.
Your demo map should demonstrate your spell. Make at least 2 levels, please.
I think it is helpful for user, too.
Also it would be nice your tooltip would be adapted to levels.
Hm.. it is really no effort at all actually:
Unit - Create Dummy At Point
Set MyDummy = LastCreatedUnit
Unit - Add <ability> to Mydummy
Unit - Move MyDummy to Point
Unit - Order MyDummy to....
Finished. One dummy for all casts.
Else the system is fairly simple and easy to use.