After noticing how some perks were never assigned, I've been on a bug hunting rampage and have managed to isolate the culprit!
The function: RestrictedClass itself is bugged! I haven't narrowed it down further than that, but the bugs went away when I did a search and replace of all RestrictedClass functions with RestrictedAbility for an unshared signature ability of the class instead.
IE: All RestrictedClass="LWS_Grenadier" replaced with RestrictedAbility="LaunchGrenade", and so on. Working workaround.
Edited for clarity: it restricts more than it should, restricting one/some classes restricts all classes. Restricting lightning reflexes from shinobi restricts it from every other class too, etc.