Mentalup functions reapply racial bonuses. This seems to fix it:
person.stats[mental+"_base"] += 1
It happens when using learning points to increase a stat. In my case a 92% human and 8% demon got 3 charm for +1. I tested it by starting a new game with a demon slave and learning charm, she got 11 points for every +1. I used a fresh installation I downloaded a week ago as well and it still happened.
The source of the problem is cour_get, conf_get, wit_get, and charm_get in person.gd combined with the +=. Whenever those 4 mental stats are retrieved via the setget variables rather than directly through the stats dictionary it returns the sum of the racial bonus and the base values. So the += in mentalup of slave_tab.gd, and any other similar code, will add the racial bonus to the values stored in the person. The mental stat getter functions were changed by Aric's mod in a dangerous way, and a lot of work would be needed to fix all cases.
Basically, when this code runs
person[mental] += 1
and mental is "cour", it is equivalent to
person.cour = floor(stats.cour_base + stats.cour_racial) + 1