The indication target (which is shown in yellow instead of grey) is the one which the driver must obey first, because it has the nearest indication supervision limit. The indication marker (the yellow horizontal line in the planning area) shows the distance to the point were the driver should start braking. At that point, the ETCS enters in Target Speed Monitoring, where no indication target exists, so all targets are shown in grey. Anyway, the code you are showing is pretty stupid and I will change it. If the script wants to display the indication marker without indication target or vice-versa, I wont stop it from doing it.
I'm making slow progress with the distance to target and the colored square. I'll try to find more time to finish it, and then I will start with the message area.
For the font size, I'll add a check such that if the DMI size is small, it will be increased a bit. I know what a pain is creating text messages with .ace files. A few years ago I created an ETCS script (not as accurate as the one I have now) and I had to do combinations of ALERTER_DISPLAY, ASPECT_DISPLAY and other controls to display messages, as no ORTS_TCS controls were available at that moment (thank you Carlo for adding them).
Edit: Use this line instead of the previous one
bool im = IndicationMarkerTarget.Equals(cur);