Ok, after a couple more attempts of the final battle, I was finally able to beat it, but only because I lucked out and the other trainer only threw about 1 other heavy, maxed-out card at me before I was able to run him over instead. I realize RNG does have a part in games like this, but it does feel like a huge difficulty spike between the final battles and the absolute last battle.
On the flip side, those last battles are a great source for money, since they pay high, and if you lose in the last battle, you get to keep all the money you got up to that point. Incidentally, does saving really need to be disabled between the final battles, if the game ends up saving your progress regardless, should you lose in the last battle?