By lowering the baud rate you're now allowing device B (and SERIN2) twice the time to receive the bits and assemble the byte.
That's probably what's helping a lot more than any line noise issue.

A software UART has a lot of potential timing issues, especially when it comes to receiving.