I've moved your thread from the "finished projects" area to the main forum where you should get more replies to your question.
As you've noticed, only the X1 parts support timeout on serin.
The trick with the other parts is to avoid entering the serin until the sender ready to send.
There are several ways around the problem.
One way is for the sender to use another line that indicates it wants to send.
Another way is to use interrupts. Have the sender transmit a 'dummy' character(s) first, this triggers the interrupt which the receiver into the serin command. If you use the pre-amble function for serin, then everything will be ready when you enter serin.
Hopefully, someone can explain it in more detail and a bit better than I have.