I can still be of some help! Looking at your Pokemon, movesets and levels I'd say they should do perfectly well against Lance. I think it's just that we need to focus on strategy, some of your moves are risky but they pack a powerful punch. So you managed to get past Gyarados yes? All you should of done is a quick Thunder and then bam Gyarados is down. So I guess the problem here is the Dragonites. Let's take a look at weaknesses. Dragonite has two 4x weaknesses. Ice and Rock.
Blizzard is by far the most powerful ice-move in Gen IV, but the 70% accuracy would be hard to work with. However if you manage to hit with Blizzard, I'm sure it'll at least take a huge chunk out of its HP. And I guess if you forget to heal while you're battling, it's also rather difficult so remember to heal often when your Pokemon reach in the low yellow zone or you know the next move is going to KO you if you don't do something.
Other than that I'd say good training areas before the E4, is probably only Victory Road. There are no trainers blocking your path so you can train to your heart's content. It takes a while but it's worth it. However you can also do this if you don't mind losing money, just keep beating the E4 and then lose to one of them so you can start again, over and over. However if you lose on the last E4 purposely, you'll still have money from the other three, if you know what I mean. But yeah I hope this helped. n__n