There's more to this story...
The bug occurs only if a non "BIOS_WAIT_FOREVER" timeout was specified in the creation of the GIO_Handle for the Tx channel. The GIO_submit() function times out and returns, AND THEN the UART driver's SWI TX handler has a go at the packet buffer. If the timeout is forever, the transmission completes successfully and then the Sem is posted and the Submit() returns.
I won't post any more about GIO/BIOSPSP 3 drivers here, since the problem of this thread does not appear to be associated with GIO.