Instead of being able it improve the mind, body, and spirit stats(MBS), I think there should be an improvement into how the game calculates the 9 derived stats for each hearthling. Currently the game calculates these by taking a hearthlings MBS stats timesing by 10 and adding a random number between 1 and 10 (could be slightly higher). This is a very simple way to calculate the stats that effect all the other things a hearthling does.
What I suggest is that the traits that a hearthling has now effect these stats directly, someone who wants to be a craftsman gets an extra 20-30 of each of the mind stats, someone who wants to be a combatant gets increases to the body ones like +10 to the movement stat and +20 to the health and damage stats.
On top of this if a system that recalculates these stats every 12 or 24 hours based on how happy a hearthling is was implemented, hearthlings would physically get better at there jobs the happier they were and a 1,1,1 MBS hearthling would preform like a 3,4,3 when they were super happy.
To do this you would add a multiplier to the random number that gets added to the stat. This multiplier would be calculated using the hearthlings current happiness, with 0 being near the middle of the happiness bar, so negatives can happen if a hearthling is really sad.
The multiplier could follow some quadratic relation so when a hearthling is near the middle there is little to no effect but once the hearthling is really happy or really unhappy the effect would quickly become noticeable.