Colin,
Please forgive me for making the following remark, since it is more than likely that you know this yourself several times over...
According to TI's docs under normal operation a call to BIOS_start() is never supposed to return/exit/end, thus the second load (the one AFTER the call to BIOS_start) of the UART_THR should never get executed.
BTW, would you consider sharing the source of your MLO file?
Many thanks,
Eugene