The other thing you can do - I think - is loop a few times.
Send an 0x00.
Wait for an 0x55.
If you don't get it - sleep a smidge (or delay) and then loop again.
Make sure you code a loop exit...
Also - if you're just trying to get things working - go ahead and put some lengthy delays in your code. Sleep a second or two.
Once you're happy your sending the right bytes, calculating the checksums, etc - then you can start trimming them down.
That's what I'd do.
I don't know if you can do this in your programming language - but I found it easier (for me at least) to dedicate a thread to servicing the port.
Input is thrown into a circular buffer as it comes in. My other threads can pick it out at their leisure. I really did this because my Powerlinc serial controller seems fond of sending garbage and I was tired of weeding thru it. It's made my CM11A stuff easier, for me at least.
Just a thought.