The Facts:
First, I had two regiments move right next to each other, both TCed. Neither of them charged, they just shot at each other.
Then I un-TCed the confederate regiment, and they immediately tried to charge. The yankee regiment countercharged despite being TCed (as it should):
Then, I took the yankee unit and tried to run it away, AFTER the had already been meleeing. This worked (as it should not):
Now, at regular intervals, they would automatically turn to go back into melee, despite being TCed, but if I gave them another move order quickly, they'd follow it and stop meleeing.
The problem wasn't the "CantCounterCharge" for column in the drills.csv being set to 1. I also tested the same situation with that turned off and got the same results.
There are two things happening, one is that you can give orders to units that are charging/in melee, though they don't always respond, sometimes they do and it can then be exploited.
The other thing is that TCed units don't automatically charge when they're near the enemy. So if your regiments are all TCed, I'll have no trouble dashing my TCed regiment through yours. And if you click charge I can keep giving orders to continue the run.
My Opinion:
My own opinion is that there should be a radius inside which two regiments will automatically charge each other regardless of TC, and that the only order they'll respond to when inside this radius should be the Retreat command. If the enemy is coming at you and you want to avoid melee, you should have to start your men moving away before they get really close.
When outside that radius though, charging units should be able to stop the charge, maybe by using the Halt command. And of course, this radius should be in one of the mod-able files so we can adjust it to the right spot. I would then try having it quite low, so you can still shoot at each other up close and not have to leave your defensive position too early when the enemy is rushing it, but you'd still be easily able to fit one of your units in this radius with an enemy looking to run through your line.