It now works as advertised, the bug screwed the whole system basically... it works like in this example now:
Player A:
Expected OPS by ratings: .900
Current Year OPS: 1.100 in 150 PA
Last Year OPS: 0.800 in 550 PA
2 years ago: 0.900 in 600 PA
Now, the AI settings are like this:
Ratings 30%
Current Year 40%
Last Year 20%
2 years ago: 10%
OK, now, the resulting OPS is:
0.3 * 0.900 (30% of the ratings)
+ 0.12 * 1.100 (150 PA from the 500 minimum is 30%, so it uses 12% (40% * 0.3) of current stats)
+ 0.48 * 0.800 (the remaining 28% from the previous step, plus 20% last year)
+ 0.1 * 0.900
= 0.876 ... so, for the AI this guy is a hitter with an 0.876 OPS.
Hope that makes sense

This allows you to have the AI act entirely based on stats if there are enough PA/IP for the player in the past...