@jwhitesj
NM Spalne's explanation of what is going on in this position is dead on. Especially the perspective regarding the pawn structure and the fact that he has 2 Rs vs. your 1. You do not want to open any lines for his Rs. Your gut instinct about, "I was analyzing the game and I think I made a bad choice for the move I chose." You were right 15...d5? is dubious, questionable. At worst a blunder and a losing move because it leads to opening files for White's Rs.
If you want to learn more about Ram pawn structures, which is the pawn structure in the game and position you posted, and how they are to be handled in detail from both sides(White, and Black), buy or borrow, "Pawn Power In Chess", by Hans Kmoch. The bonus is that he tells you that almost all openings result in one of 6 characteristic pawn structures. With insightful detail, he shines a light on how to handle both sides of each of those 6 pawn structures. He starts on page 107 of the book and continues until page 200+.
Here's is how I would approach the position. The material imbalance is rook and pawn versus two minor pieces. Rooks need open files to be effective and White has none, so Black should be better in this position. The one thing Black does not want to be doing is trading pawns and opening lines for the White rooks. Your move 15 ...d5 was therefore bad based on general principles. And the game continuation clearly showed the danger in your approach.
I think your assessment that your play is on the kingside is exactly right.
A few responders recommended 15 ... Qe7 and 16 ... Rf8. It is quite clear that the rook is well posted on the f-file but I'm not so sure the queen is well posted on e7. I would prefer to put it on d7, playing for a bishop sac on h3 (which would be winning with your rook on f8 and a knight on f4) and keeping control of the light-squares on the kingside.
Can you figure out a way to get a knight to f4? The direct route Nf6-h5-f4 doesn't work yet, but the queen may have to stay on f3 to prevent it. Another route is Nc6-e7-g6-f5, but that may be a little too slow, and makes it easier for White to play d4 to open some lines for his rooks.
A third route, after 16 ... Rf8, is 17 ... Nd5 and 18 ... Nf4, taking advantage of the discovered attack on White's queen. I'm not sure this would work with the queen on d7, because White can give up his queen for a rook and two minor pieces with 17 ... Nd5 18. ed5 Rf3 19. dc6 Qc6 20. fg3.
After all of these considerations, I have to think the other posters were right. The queen belongs on e7 to avoid this tactic. It can be switched to d7 after the knight reaches f4.