in my game against Nix77 I came across quite a tricky situation where Nix put me due to my own stupid insistence not to withdraw earlier from the river. See picture below from Smolensk.

I am currently pondering how to best salvage the situation and would appreciate any tips and some clarification on how ezoc-movements generally work.
1st option is just to ditch three westernmost stacks and just run with the 3-14 stack that can reach safety due to good movement rolls. For them it costs 9 mp to move one hex west and rest is free range. This would leave rest of the divisions to their fate as 6-16 stack can only move one hex west (9mp for them also). I am bit reluctant to surrender those divisions to their fate as they contain the best Soviet inf division I have (morale 60+, cv 5).
2nd option is to try to fight my way out by driving those 2 motorized regiments away. I am fairly convinced that with deliberate attacks from these high cv units could drive them off. My question here is that does it help a bit if I manage to drive them one hex SW from their current positions? Is my understanding correct that my troops would still have to move from eZoc to eZoc even if they were moving first SE, then SE, then SE again (zigzagging between german units)? Is the zoc from a regiment as sticky in regard to mp costs as a zoc from division?
I am also considering just trying to drive the westernmost regiment away (preferably to sw) with just hasty attack (more mps left to escape), but there is a big risk of that hasty failing (I could bring around 10 cv to that hasty). If succesfull I might be able to rout the eastern regiment if it would help more. Is the ezoc to ezoc movement always as expensive regardles if the zocs are projected by different units? In this example (if succesfull) there would be a motorized regiment W from 12=12 stack and my inf would be moving SW (black arrow) to from the zoc of 12=14 and 7=9 to the zoc of the regiment. Is it as expensive move as moving directly from zoc of 7=9 to west to another hex zocced by the same unit?
Hopefully someone can shed some light to these zoclock-related movement rules.
