The bit for "Empty Transmitter Holding Register", is not set. It is bit 6 of LSR.
So the Software does not see if the FIFO is full, if it is polling this bit. It keeps on writing into the FIFO after the 16 bytes are full and out comes garbage.
sorry i was just too stupid about reading the LSR byte correctly... there is actually no bug