I went over to wikipedia and looked for the ranks in the different armed forces (US). Then looked at the ranks for each character, and started matching with the ranks for each armed forces branch.
Cdr. Paul Navarre has to be Navy, since Cdr stands for Commander which is used only in the Navy.
Col. Ingrid Falkland is either Army, Marine Corps or Air Force, since Colonel is not used in the Navy. And whichever I chose (at least in spanish) the word would be the same (Coronel).
Similarly, Surgeon Captain Helen Floydd could be any of the four branches, yet use the same word in spanish (Capitán), the only difference being that if she was Navy, she would outrank Navarre (Navy Captain being a higher rank than Commander), and equivalent to Colonel in the other branches, while if she was in any of the other 3 branches, she would be the most junior "named" officer. Note that this last rant does not affect translation at all.
Cdr. (Air) Subakh al-Kuhar was a bit of a problem, since the Air Force does not use Commander as a rank, but as a title. Being a commander, and with the Air Wing added after, one could assume we're dealing with a Colonel or a Brigadier General.
Finally, for the XO I went to the page on Executive Officer to see what it is about and decided to just translate directly (Oficial Ejecutivo) even though I have not ever heard the term used by active military personnel.
In the end, what I think is even more important than using the proper rank translations is to be consistent throughout the different places where those are used. Having someone be a commander in one page a Colonel in another would be a much bigger problem I think.
I expect this makes sense to you and helps you get to a good translation. I have certainly gained a greater appreciation for translators while working on UFO:AI..
Cheers!