I don't really know where the problem is, however there are a few things I'd like to point out:
The initial loop in your first trigger clears unused units, right? Why don't you have it in separate trigger that fires when unit stops casting an ability?
Also, Loop (Integer A/B) is apparently buggy, you should create your own integer variable that you will use instead.
So Loop (YourIntegerVariable) from 1 to X. And instead of Unit[Integer A] you will call to that unit as Unit[YourIntegerVariable].
The last thing - why do you have loop always from 1 to 10? As I understand it, a maximum of 10 units may cast this spell at a time. However won't it be more efficient to use a loop from 1 to LINK_NumberOfUnits. If I understood that part of trigger correctly, LINK_NumberOfUnits means how many units are currently casting the spell.
This way you could have more than 10 units at a time to cast it, but if fewer cast it you won't loop 10 times for nothing.
Oh and "By Maker's bones, you don't null points!"