What is the main benefit of using the shield?
Over using what? The XBees use non-breadboard-compatible pin spacing, so you need some sort of adapter. Also, the XBee is a 3.3V device. The shield manages the voltage drop for you. Finally, using the shield means you don't have to worry about how to connect the right pins together.
The XBee library looks pretty straightforward. The payload array is where you put your data. The uint8_t type is the same size as a char, so you could user char instead. You might need to do a cast later, but that's easy enough.
Use sprintf to write the data into the array:
sprintf(payload, "Lat: %f Long %f", lat, long); // Assuming lat and long are floats
Then, use strlen instead of sizeof to get the size of array for the 3rd argument for the ZbTxRequest constructor.