1. Do I need to change the modes of the Xbee to make this work? To clarify, do I need to change from AT or point to point mode to API mode?
Bi-directional communication works in either AT or API mode, if the XBees are properly configured.
2. Do I need to format each set of data with specific termination characters. For example, the Arduino knows when altitude data is being sent because it is formatted with these start and end characters '<' '>'. Then the GPS coordinates could be formatted with '\' '/' start and end characters. This would be utilized for every type of data being sent. Would this work? Are there better alternatives? If so what are they?
Yes, it would work. Yes, there are better way. Use the same delimiters for all packets. Add a packet type in the packet - A for altitude, G for GPS, etc.
I am a recent Mechanical Engineering graduate with little coding experience for this type of application.
I really don't understand this. I'm a Mechanical Engineer, too. But, I got my degree in 1979. And, when I got my degree I COULD write programs. In FORTRAN, rather than C/C++, but logical thinking is the key, not the particular language. Computers are far more prevalent now than they were then, so the availability of programming classes has gone up. The need to, as an engineer, be able to use computers has not gone down. Only being able to use programs someone else has written is a career limiting position, so I can't understand why so many recent engineering degree owners can't program.