although i am not familiar with IAR, i am not sure if the debugger can display DR register data in tx mode? is it possible that it would be always zero? or it becomes zero by the time you inspect it. since you used fifo, after write to DR it automatically transferred to fifo.
we have checked our own debugger, after writing to the DR register, and we inspect the associated memory area (we dont have register view, only view memory area by address), it remains zero. accordingly, just after character is received and we inspect the DR register address, the expected char is there.