I do not know much about C # programming, but if I interpret the code correctly, the HP value is always fixed to 31 at code line 348, and this should not always be.
Would it not be better that way?
[font=Courier New]case 0xFE: [b] [size=2]//[/size][/b] finalIVs[0] = 31; do { // 31 HP IV, 2 other 31s for (int i = [b][size=2]0[/size][/b]; i < 6; i++) finalIVs[i] = IVs[i] > 31 ? (int)(Util.rnd32() & 0x1F) : IVs[i]; } while (finalIVs.Count(r => r == 31) < 3); // 31 + 2*31 break;[/font]