I've looked further in the bugs in enemylevelup. At the moment the person constructor assigns a caste with possible extra levels and ability points assignment. This is ignored in enemylevelup which sets a new level and assigns ability points again. Ideally the constructor would take level as a parameter and construct the slave correctly so there is no issue of levelling up (or down) elsewhere.
If this is fixed though all random characters would have 2 points per level and some of the excitement of finding unique characters is lost. Putting an intentional +/-1 low chance variance onto total ability points could be preferable to both fixed generation and random bugginess.