Well, it looks to me that black can defend with 24...Rf8. White does best to trade with 25.Rxf8 Nxf8 It looks like you don't have any compensation for the pawn.
umm.. 22.Qh4 threatens f4 still without losing a pawn. You have threats against the h-pawn and the rook. So maybe 22...Rbe8 23.f4 Nf6 24.g4 and you win the e-pawn. 22...Nf6 23.f4 e4 or something like that. I'm sure I screwed up somewhere, but there's some ideas. These types of positions require accurate calculation. The most significant factors I see in this position for white is active pieces and play against the e-pawn.
Ok, I'll get fritz out and see what he thinks.
Fritz9 prefers Qh4 by very slight edge. Both keep a slight advantage. It's not easy to evaluate. Sorry, too much work for me