All of them have Dark, Ghost, Ice, Dragon, and Steel Types respectively. The main weakness patterns I see are fighting, fire and fairy. Setting up a team based around those weaknesses are key, and using those weaknesses to your advantage is essential.
Personally, I set up a fighting/ghost/dragon type team of Latias, Gallade, Blaziken, Dusclops, Pelliper, and Metagross (I know steel only works well against ice, but it was my hit taker for the most part). I switched the order of the party depending on the weaknesses each trainer had.
As others have suggested, grind your a ss off. I lost to the Elite 4 twice before realizing that was the solution. By the point when I decimated the Elite 4 my Pokemon were from 50-70.