I always use a wait modifier to synch to the first byte in a packet.

This is the line used to receive in my remote sprinkler controller using a pair of
XStream 900MHz OEM modules;

SERIN2 RX,84,[WAIT("A"),CMD,RlyNum,State]

It waits for the A then grabs data. Really simple and it works.

I would probably have used a pair of Linx LR series like Earltyso did, but I built
the remote sprinkler controller LONG before the LR series were available.