Do you add the spells via triggers?
If so, try doing "Custom Script: call UnitMakeAbilityPermanent(udg_Unit, true, udg_Ability)"
udg_Unit and udg_Ability should be global variables referring to your unit and ability respectively.
You have to do this for every time that you add an ability via triggers to avoid losing them on transformation like morphing abilities, upgrades, etc.
How can I refer to "Picked units" in your udg_Unit.
I'm getting errors, I don't usually work with this, don't you have an example for me to practice or an ability on a tower go to the upgraded tower to see how it works ?
The id as you have written it down is a doubled id.
The first one is the id of your ability, the second one is the id of your base ability (the one where you based your ability from), the ":" in the center is just a separation mark.
You use object type id's in single quotes.
Charcodes in single quotes: ('a000', 'Hpal', 'AHbz', 'abil', etc) are converted to an integer using charcodes and baseX.
In any case, you will have: "..... true, 'A02K')"