I'm pretty tired, but I will try to give some advice.
I don't see the point of Bb4. The exchange will just strenghten the white canter and open up the b-file, making queenside castling dangerous.
Then you queenside castled. I think it's a mistake. Your pieces are all very cramped, and in no position to start an attack which is the only reason why you would queenside castle. Meanwhile white's pieces have a lot of potential, and the rooks easily come in with one move on the big file.
I felt 16...Na5 was not needed. The threat of Bxb7 can be neutrilized with 16...Rdg8. Even though your position is more cramped than ever now, your rooks are at least positioned for a counter attack and your king can now run to d8. It's risky... As I said, I'm too tired to calculate what would happen.
21...Rd5 seems alright maybe. Only continuation I see is 22.Nc6 Kd7 and it looks like black can hold off the attack. You need not worry about material, you are an exchange and rook up.
I ended up winning this game but I'm not sure if it was only because my opponent made a key blunder on move 22. All comments and suggestions are much appreciated, on any move, not just Qxa7 as opposed to my choice Nc6. Thank you for the help