Actually I'm getting the same results as you. I'm not sure at what point the batting ability changed back though, but I just simulated an entire season of the IPL, after changing someone's batting ability to 65535, at the start of the next season it's down to 970.
Like I said I'm not sure when it got changed back, but for sure it's the correct address, as he top scored in the IPL with over 1400 runs.
Also I've added the Retirement address (got it from your post in the retirement thread) to the table, works great! The only downside though, is after un-retiring all the WI legends, they severely underperformed (except Lara) against both Australia and England (current day squads). So I gave up after that. Maybe I'm just crap at the game, or maybe their ages have something to do with it (didn't edit it).
Edit: Won't bother posting my table as it's behind yours in terms of the number of values that we can edit. If I do catch up (very unlikely at this point) I'll post it. The only advantage it would have in any case is that you don't need to search for the DOB codes, etc. You would simply have to load the player profile in the game and the table would automatically update the addresses and corresponding values. Perhaps you could update yours to incorporate the use of pointers so we could bypass the DOB codes? If you need any help let me know.
Want to incorporate that into the table I sent earlier? because I'm not entirely sure how to do that.
Also, have you tried working the economy value? I'm having second thoughts about the lower value being the best possible.
Cheers