you are going to need two styles, or one good one.
set up the components in the label so that the distance is AFTER the Bearing...then it will behave
so a style like Bearing and Distance Above.. will always show the distance after the bearing.
OR send me a sample of your file to examine the 'bad' results.
this seems to work for me:
<[General Segment Direction(Udeg|FDMSdSp|MB|P4|RN|DSn|CU|AP|EN|DZY|OF)]><[General Segment Length(Uft|P3|RN|AP|GC|UN|Sn|OF)]>'