I've had the same problem. What you do is probably this:
Offset (Unit's Position) by 10 in (Facing Of Unit).
When a unit now enters a impassable area it tries to move away from there, so the (Facing Of Unit) gets totally messed up.
What I did to solve it:
Set MyAngleVariable= (Facing Of Unit) <-- Do this once at the beginning of the game
Offset (Unit's Position) by 10 in (MyAngleVariable). <- This is for movement.
(Facing Of Unit)=MyAngleVariable <-- This makes the unit look in the right direction
You probably have triggers for turning left or turning right. These need to be adjusted to work with MyAngleVariable:
Old: (Facing Of Unit) = (Facing Of Unit) +5
Now: MyAngleVariable=MyAngleVariable+5
I hope that's understandable

I could give you the code sample, but it's in Galaxy, not GUI.