I think the top combat-fix would be simple archer/MI logic that says that as long as they have a target (enemy without friendlies on the same row) in range, they stay where they are and fire.
Agreed. If they have a valid target, they should be shooting, not moving.