Hello again l0git3c.
You've update your spell. It's MUI now, use Custom Value MUI System.
Here's some suggestions:
1. You don't need an array for dynamic point variable (use to prevent leak, then destroyed after), like NoPointLeak variable, it need no Array.
2. You save the target then use periodic trigger to "erase" it to tell if that unit has casted by fire or ice before, why not make the fire and ice leave a buff that expire on 3 second (or you can use dummy to cast dummy ability that only have buff) then check if that unit ave that buff or not. if that unit have, then remove that buff and do your spell action.
3. In KnockBack trigger, you make unit to face Elementalist <gen>. If elementalist have moved from first position, it won't make a straight knockback. It will turned to elementalist. Just save the angle to real variable with array, then refer to it when you move that unit.