Black, from what I understand you wanted to balance the game around bigger armies.
A few pointers- in most fantasy books, in order to take out a dragon, 1 of 3 options will come into play:
1) The whole village will band together to kill the dragon (usually because it attacks the village). The village usually ends in ruins, regardless of the dragon state.
2) The city sends a band of knights to kill the dragon.
3) Send adventurers to kill the dragon. Note that those who manage to kill them are proclaimed heroes.
In all of the 3 cases, we can see that 1 Dragon>=A whole village (~300 armed, untrained men)= A band of knights (~50 highly trained men)=A hero.
From what I can see, your main issue is not army vs army, but army vs single. You could fix this by giving the champion high armor (it's the kind of people who wear the legendery breastplate that they found in the dragon's lair), and some damage reduction.
The biggest issue is the formula for damage- attack^2/attack+def. It means that you have to increase your defense exponentially in order to receive the same amount of damage.
A possible solution for this might be to use 2 different kinds of armor systems- one magical and one physical. Champions are immune to physical but suffer from fire, and units the other way around. Then, the champion takes 90% reduced fire damage (so 30 instead of 300 base) and you can give him extra defense. Or you can give the champions a lot of armor(or lots of hp), but it might look stupid.
Another option, is to give your single-units a lot of dodge, and give truestrike to all units. The idea is, in order to hit the champions the units will have to use a less-damaging ability.
Hope this help!