Well, it probably shouldn't take three long days of research and trial and error to do something so simple, but it did. Thanks Bethesda.
So first I downloaded your pokemon mod to see if I could find any differences between the way yours was set up and mine. I noticed right away that the spells on your NPCs were not in their spell list but instead added through a script.
I guess if the spells are in the spell list they are impossible to remove through a script. That's why it was working for the player, because I was giving it to the player through a spell tome.
So basically what you have to do is make a script and place it in your actor that gives him all the spells you want him to have. I made one that happens at the start of battle. I figured this would be the best way. I also took it further and added the cooldown script to the actor as well. That way you don't have to put a script on every spell you give him. However, if you want it to be spell-specific (different cooldown times, etc) you can still use the first part of my script below and put the cooldown script in the magic effect.
So here it is, finally. Hope this saves someone else from tearing their hair out like I did = /:
Scriptname GiveSpells extends ActorSpell Property Spell01 AutoSpell Property Spell02 AutoSpell Property Spell03 AutoSpell Property Spell04 AutoInt Property Time AutoEvent OnCombatStateChanged (Actor akTarget, int aeCombatState) if (aeCombatState == 1) Self.AddSpell (Spell01) Self.AddSpell (Spell02) Self.AddSpell (Spell03) Self.AddSpell (Spell04) endIfendEventEvent OnSpellCast (Form akSpell) Self.RemoveSpell (akSpell as Spell) Utility.Wait (Time) Self.AddSpell (akSpell as Spell)endEvent
For more spells of course just add more "Spell Property XXXX Auto".