I'm posting from my phone so I'll be brief. You don't want to use print(var, HEX) for the data_start, you want to use write(var) there.
You might want to back up and put just the SoftwareSerial example (adjusting to pins 2 and 3 for RX and TX) and see what exactly is being received. Don't get caught in the trap of trying to use a more complicated communication method to troubleshoot a simple method.
I haven't had a chance to find my Arduinos and XBee modules yet today. I'll look tonight.
Edit: various == var ... silly autocorrect