I think a large part of the problem is that when you group units, they don't all march at the same pace.

Try it sometime: group your infantry and cavalry and march them towards the enemy. The Cavalry will outpace the infantry, and if you ordered them to attack in such a formation, the cavalry would charge first and then the infantry far behind.

Does anyone know how to move the army without having the cavalry outpace the infantry?