Without any detailed thinking, I think 24. a5 is a mistake, liquidating his weak pawn and giving up your potentially connected passers, while trading rooks to boot. You have the advantage of his having weak b- and d-pawns, so tie his rooks to them.
First instinct 24. g3 Rc4 25. Rxc4 dxc4 26. Rc1 Rc8 27. Rc3 followed by b3 then whacking b6. Preserve the a-pawn and use that to try winning. Or 24. Rb5 Rc2 25. g3 Rd2 26. Rxd5 Rxb2 27. Rb5 (which after the trade may be drawn, but whatever.)
27. g3 is a tad more accurate, since centralising the king may be important. But not much of a difference there.
I think (opinion) after 30. Rxd5 the extra passed pawn is too close to the kingside to win, but someone who's better versed in endgames should give a more concrete judgement. Black could plonk pawns on f7-g6-h5, march his king towards e6, put the rook on d1 and ask white for a plan.
After 32. Re5 it's drawn. No ifs, buts or whys, a draw.
This is from a game I just played. White has the advantage for almost all of the ending, but couldn't find a win.