I don't know how I can help you, but this is a typical problem with dialogs controls when created from code.
It has to do with the current font, and if the font is proportional (e.g. Ms Sans Serif or Arial), the controls are no more like it used to be in MS-DOS because of the width (mainly) of the strings (SAYs or GETs).
One simple solution is to use the clause PIXELS for each SAY and GET, combined with the SIZE of these controls and finally, until you succeed, assign a color for all SAYs (GETs are having a frame so you can see how much space is occupied on dialog).
An example:
cGet := "Hello there "
DEFINE DIALOG odlg FROM 0,0 to 150,200 PIXELS
@3,5 SAY oSay PROMPT "Type something:" OF odlg SIZE 85, 10 PIXELS COLOR CLR_YELLOW, CLR_GREEN
@3,85 GET oGet VAR cGet OF odlg SIZE 100,12 PIXELS COLOR CLR_RED, CLR_WHITE
ACTIVATE DIALOG odlg CENTERED
I hope that this will put you to the right direction, and if not, I'm sorry to waste your time
Kind regards
Evans