This may only be a temporary solution until I find a better way, but for now we just number skills and spells in the constructor based on a reference count (static int _numSpells), essentially like this:
SpellNumber = _numSpells;
This insures that nobody will get a duplicate and is a simple way to do things. More importantly it was quick to implement and didn’t break anything.
We’re now down to 16,156 errors.