It's Ayden. The only thing he does not have is Brawler and Fear stats. Everything else is maxed out and in 500+ days in 0.8.3.1, I got nothing. I still trained him in Strength though because in that version, Max HP was determined by Build% and Strength, fail or not, raised it.
Brawler (>79) gives a +10 to chance and afraid (> 5) gives another +10, so without those two Ayden loses +20 to chance.
Base chance: 40
str 120+ (and body > 3): -140 (different str. modifiers summed up)
affinity > 59: +10
warrior>79: +5
discipline > 74: +15 (total, different disc. modifiers summed up)
body > 7: + 30 (total, modifier for body > 6 and body > 7 summed up)
training bonus (max; as displayed under training bonus in Dojo): +10
"trainer" and "push it" (combined): +45
So total value (for Ayden, assuming your Ayden has really body = 8) without random roll (and without brawler and with afraid<6):
40+10+15+5+30+10+45-140=15
Now the random roll is between 1 and 90, which is substracted from the total, if the resulting value is above zero, training is successfull (and strength is raised).
If for some reason your Ayden has only body=7 then base value would only be (at maximum) 135 (as the bonus for body> 7 is 20), which would then always result in a negative value (and failed training). (Added the previous sentence, as I do not know, if the Ayden you do refer to, is the Ayden from your v8.23 game, which you did patch via a pre v8.3h version to v8.3, or from a new game). But then as not orgbody (but body) is used, you should be able to raise his body from 7 to 8.
Also you do lose +30 to chance (without trainer) and +15 to chance (without "push it") for dojo training of npcs, which might also be the reason, why you did not raise Ayden to higher strength values (eg. without push it, even with body 8 and without brawler and without fear the chance to raise it is zero as the resulting value will not be greater than 0).
ps. If you doubt me (which many seem to do consistently and then ignore it, after they did find out, that I was right, only to doubt me again the very next time), then look yourself under NewTrainTexts (search for string '"NewTrainText' without the single quotation marks in the html). Oh and the code (for the followers) did also not change between v8.31b and v8.32.