The individual infantry should maintain their formation as they move. They do maintain position and their own correct individual facing, but the overall formation facing is not correct.
For example the formation should be in the same direction as the movement arrow. Only the lead unit at position D maintains its correct position and orientation in the formation.
The problem was because I was doing a only Matrix.CreateTranslation(unitPosition) * MatrixRotationZ(unitRotation) and was resolved by an additional Matrix.CreateTranslation(formationPosition) .
The formationPosition is based upon unitPosition.
Thankyou Scott in Cambridge.
Solution now looks like:
No they are NOT cybermen!
Unit formations showing : Line, Column, Square and Skirmish