I always use groups, and never use the stock formations. I'll select units of a type (archers, for example), then right button drag them into the formation I want, then apply the group command. Grouping is important for ranged units because I often need to tell them all to cease fire to avoid hitting friendly units, or move in or out of fire-at-will mode. Infantry is grouped and positioned the same way, usually with a hold position order. Whatever cavalry I have is usually put into two groups near the flanks.

I use the Alt key when moving the whole army, so they hold formation when moving (more or less). If they get a little off-angle when marching towards the enemy, I use the "," and "." keys to rotate the entire army formation (with all units/groups selected).

When things start to get disorganized halfway through a battle, and I need to re-form the line or deal with an enemy attempt to outflank, I'll ungroup the units I want, then re-select them, and do a right button drag to set them in a formation facing a new direction, or a different unit depth depending on the situation. Then I'll re-group them again. That happens a lot with seiges, where (for example) archers might approach in a horizontal line to increase the lateral spread of fire before the gates are taken, then I'll re-form them into more of a column for moving through the streets. So I do a lot of that ungrouping/select/right drag/regroup stuff to get the guys facing the right way, in the right formation.

BTW, I tried a suggestion I read here somewhere, of grouping your army into sections like left flank, middle line, right flank, regardless of unit type. I can see where maybe that might be an advantage if you're doing one of those echelon approaches to a phalanx, where you're planning on wrapping around the end. But I had trouble with not being able to quickly give commands to the different unit types within the group. Maybe I didn't spend enough time experimenting with it.