Taking into account the circumstances, the writers did a decent job with the Takuto battle. I don't believe the battle should ever have taken place, since Takuto is one of the worst plot devices in the show's history - and make no mistake, that's all he is: a plot device. The league-only rivals like Ritchie were also plot devices, but they had character and buildup at least. Takuto was just "here's a legendary trainer for Ash to lose against, and share maybe five lines of dialogue with". Terrible.
But like I said, the writers did a good job with it. Ash's team was selected based on Pokemon that had fought legendaries before, Heracross' type advantage and Gible's Draco Meteor (the last one is tenuous, but whatever). That's not completely awful reasoning and gives them license to have use "weaker" Pokemon like Torkoal and Gible, but based on "sound" reasoning - so you can at least put Ash getting curbstomped down to some of the Pokemon he used.
Thinking about it, they also measured established strength almost exactly. Torkoal is one of Ash's worst Pokemon and this held true in the battle vs. Darkrai, where it failed to land a single hit and was OHKOd; Sceptile, an established powerhouse, was the one who managed to KO Darkrai; Pikachu, in his typical end-of-arc power buff, tied with Latios. I'd say Swellow is the only Pokemon in that battle who was treated "harshly" based on their already established strength. It's no coincidence that the two Pokemon who scored KOs were Sceptile and Pikachu, Pokemon with established and genuine strength.
Now, I think for the purposes of this topic we have to ignore the fact that this is a TV show and the writers dictate everything and just say what would have happened if Ash had used Pokemon that had been established as stronger.
First off, Heracross can stay. Yes he lost, but Sleep Talk Heracross is one of the best Darkrai counters around and if I was Ash and I had a Sleep Talk Heracross that's exactly what I'd do as well. Perfectly understandable decision.
I wouldn't use Infernape. Too tired after battling Paul, even with the type advantage over Darkrai. However, Charizard can easily fill the fire-type quotient by replacing Torkoal without a problem.
Sceptile can also stay. A grass-type which is always nice to have, and his Hoenn powerhouse.
Pikachu can stay as well. Kind of a "clutch" Pokemon for Ash, works well. Beat a legendary before.
Gible's appearance in the battle was the most tenuous of all. He can easily be replaced by Snorlax - and remember, eating Snorlax's dreams only serves to piss it off. I could see something like Ash vs. Harrison happening here, where it beat Hypno after having its Dreams Eaten.
The last spot is a difficult spot to fill. However, I feel Staraptor's Close Combat could be a useful weapon vs. Darkrai. Swellow was a decent choice though. Glalie was another viable option, and since he lacked a water-type, he could also have used Squirtle.
Would the outcome be any different? Well, we saw Heracross lose easily. However, I think Charizard is stronger than Torkoal and Gible put together, so there's a possibility it could have beaten Darkrai. Sceptile or Snorlax could also come out second and weaken it, for Charizard to then finish it off (Sceptile also could do that, if Snorlax was sent out second). That leaves us with 4 on 5, or 5 on 5 if the second Pokemon was returned Ash's Charizard knows Dragonbreath, so it might be able to at least weaken Latios, allowing something else to beat it, like Pikachu or Glalie at a stretch.
Overall, it's a possibility that he could have won given the sheer power of some of the Pokemon Ash has at his disposal that he did not use, and the relative weakness of some of the ones he did (Charizard and Snorlax over Gible and Torkoal). However, a 6-2 loss is a massive deficit to overhaul, and it's very difficult to make an accurate judgement without knowing Takuto's full team.