Controlling the text angle through rotation and mirroring can be very tricky, and can only be tested in plan view since the dialog editor only shows the full view straight up.
Your situation doesn't sound too difficult though. You just need to account for the mirroring of the part. Stretching the a,b coordinate into negative quadrants will mirror, rotate 180°, or both depending on which quadrant it is.
The code to do this is really quite simple, as follows:
symbol_angle = SYMB_ROTANGLE
IF SYMB_MIRRORED = 1 THEN symbol_angle = -SYMB_ROTANGLE
rot2 -symbol_angle
TEXT2 0, 0, "Your text here"
This will keep your text always straight up. It gets more complex for parts like an align marker whose text needs to rotate but not turn upside down.
It is usually best to set the text anchor (in the DEFINE STYLE statement) to the center (a value of 5), though this may vary in some cases. (And don't forget the SET STYLE statement.)
If you still have problems you have probably made the symbol too complicated.
The way I usually test this sort of code is to rotate a bunch of copies in a big circle and then mirror a copy of the whole lot. Any rotational errors will show up as long as you have enough copies (16 in each circle seems to be enough for most conditions).
HTH