RS-485 module not transmitting LF and CR
Not 100% sure this will resolve your issue, but something to check:
per Atmel datasheet, immediately prior to transmitting bytes you should be waiting for the UDREn bit, meaning the UDRn register is empty, and can accept a new byte.
UDREn is different than the TXCn bit, which you seem to be using (but it's not clear how you defined that mask).
Anyway, TXCn is for after, not before. Other differences: UDREn happens before the byte has been fully transmitted, and TXCn may not get automatically cleared the same way as UDREn.
Use UDREn when feeding a bunch of data to be transmitted in a block, use TXCn when waiting for the final byte to finish, in case that matters.