lANCE is a user of dragon type pokemon.They all possess powerful moves and have high stats, so they're going to be doing a lot of damage to you. Do you have any Ice-type Pokemon or Pokemon with Ice-type attacks? Avalanche, Blizzard (or Blizzard + Hail for 100% accuracy), and Ice Beam will take out most of Lance's Pokemon with ease. Do you have any Pokemon with these attacks? They're all TM moves. If not, do you have any Pokemon that can learn Dragon Pulse (TM59) or Dragon Claw (TM02).Lastly, make sure you have a strong user of Electric- or Rock-type attacks to deal with the League Champion's dragon wannabes.
If you're still having difficulty with this fight, when you're up against Gyarados, start off by using 3 or 4 X Defends, 1 or 2 X Speeds (1 if you have a faster Pokemon, 2 if you have a slower one), and then 3 or 4 X Attacks / X Specials (remember Intimidate lowered your Attack one stage). Hope that Gyarados doesn't get a critical hit and heal with Hyper or Max Potions whenever you get weak. If Gyarados' Dragon Pulse is hurting, it means Dragonite's Hyper Beam, Thunder, or Blizzard probably will, too, so use an X Sp. Def.
After all of that, you should be able to run through Lance's team fairly easily. The only thing that will ruin your fun is a critical hit, which seem to be more common if you stack a lot of boosts, but you'll just have to deal with it. If you saved your game before fighting Lance, just reset and try apply all of the boosts again. It's a surefire way to win and the only luck it requires is dodging a critical hit. If you need more X Defends or X Sp. Defs, or more X Attacks or X Specials, you'll know and you'll be able to use them in the next fight.