Hello Matthew,
I am writing from my wife's computer and that usually gets me in trouble, as I am unabel to test anything, having said that here goes . . . It looks as if you are sending out binary 1 or %00000001 and expecting to capture the same at the receiver. Methinks serin / serout doesn't work that way, I think it is looking for the hex or ASCII equiv. so if you serout 1 in binary, your receiver is looking for $31 or 49 Decimal, you could change the loop to send out $31, OR 49, and look to receive the same SERIN PortB.0,T2400,[#LED] . Just my thoughts, probably wrong.
OR you can have the IF THEN loop expect anything except zero.
JS