RS-485 differential signals won't "cross"?
This is a quick guess, but it smells like your transceiver is not releasing the bus.  The other transceiver is then fighting against yours when trying to drive the lines to their opposite states.  Yours appears to work fine since it doesn't have to fight with anything else on the bus.

Look carefully at your code and see if you properly release the line when done transmitting.  Or, sometimes this is done in hardware.  Either way, take a close look at this mechanism.  It is likely faulty.

Have your device send a message with nothing else connected to the bus.  Then afterwards measure the current it takes to short the high line low and the low line high.  I suspect you'll find that current is a lot more than it should be according to just the passive bus pullups and pulldowns.