So lets say Alice sends XMR to Bob and maybe even uses a payment ID so that Bob knows that it was Alice. Can Bob send Alice XMR in the future with only the information in the original transaction or does Bob need to get Alices public key?
There is no way for Bob to know which of the one-time public keys was actually spent, which isn't even relevant. Even if there were a way to know which public key she spent, he still wouldn't know the address that controls the spent key; so, no, he would have to ask Alice for her address (public key).
Bob needs Alice's wallet address.
Bob knows only that his funds came from 1 of the one-time public keys that made the ring signature but can't tell which one. Even if Bob knew, Monero uses one-time public keys so it can't be re-used. Sending to any used public key would effectively burn the funds.
Payment ID helps to identify the sender (like an invoice, really), but doesn't identify the originating wallet. Someone else could have paid on Bob's behalf and Alice wouldn't have a clue.