Were my sacrifices sound in this game? [FEN ""]

1.d4 Nf6 2.c4 e6 3.Nf3 b6 { I wasnt familiar with theory here, but I vaguely remembered seeing a kingside fianchetto somewhere and it seemed reasonable. } 4.g3 Bb7 5.Bg2 c5 6.O-O Be7 7.Nc3 cxd4 8.Nxd4 Bxg2 9.Kxg2 { Maybe not ideal, but I think white is better due to my lead in development, my strong c-pawn and in particular the weakness on d6. } 9...O-O 10.e4 Qc7 11.b3 Nc6 12.Ndb5 { The point is to take control of d6. The attack on the queen allows me to do it with tempo. } 12...Qb7 13.Nd6 Bxd6 14.Qxd6 { I might lose time if black finds a way to attack the queen. As long as I prevent d7-d5 and can coordinate in reasonable time I think I have a clear edge. Tell me if I'm wrong. } 14...h6 { ? I think this move warrants a ? because it does nothing to fight for d6 or counter attack. } 15.Rd1 { I wasnt sure if the bishop was going to f5 or a3 so I moved the rook first. } 15...e5 { Whether this move is good or not depends on whether my sacrifice is sound or not, which is beyond my skill to say anything definite about. } 16.Bxh6 Nd4 { I expected Ne8, but here I am not sure of anything. } 17.Rxd4 { Is this sound? My knight will be beautiful on d5, blacks rooks will both remain very passive. I intuitively felt like this gave a clear advantage. } 17...exd4 18.Qxd4 gxh6 19.Qxf6 Kh7 20.Rd1 Rae8 21.Rd6 Re6 22.Qf5 Kg8 23.Qg4 Kh8 24.Rd5 Rg8 25.Qh4 Kh7 26.Rf5 d6 27.Nd5 Kh8 { I couldnt find a way to proceed with the attack, though maybe I should have kept looking. Instead I decided to simplify a bit and hope that my extra pawns and strong knight will be enough. Intuitively I was sure that it was, but objectively I might have been wrong. } 28.Rf6 Rxf6 29.Qxf6 Kh7 30.Qxd6 Rg6 31.Qc7 Qxc7 32.Nxc7 Rd6 33.Nd5 Kg6 34.f4 Kh5 35.Kf3 f6 36.f5 Rc6 { ? This allows mate. Was white winning here if black had avoided the mate? I see no counterplay and white will soon create several protected passed pawns. } 37.Nf4 Kg5 38.h4
I did analyze the game and it's just time consuming to annotate the whole game about all the inaccuracies and blunders made by black or white as there are many of them. Instead i wanna be more straight forward and answer your actual question about whether your sacrifices were good enough.
So the main sacrifices which i assume you are talking about are 16.Bxh6 and 17.Rxd4.
After 16.Bxh6 with perfect play, white can only achieve a draw, obviously your opponent made a blunder by playing 16...Nd4 (this loses him right away, I'll tell which is the best continuation after this move in my next explanation about 17.Rxd4)
Why 16.Bxh6 is not the best?, because of
16...Ne8 (gets away from the queen attack of Qxf6 if after gxh6, also attacks your queen and threatens gxh6) 17.Qd2 (getting away from the knights attack and defending the h6 square, so now you are sacrificing your bishop for g and h pawn) 17...gxh6 18.Qxh6 (after this you are a piece down for 2 kingside pawns, which usually is good when you can complete the attack on kingside to gain an advantage, but here there is no other piece supporting the queen to attack the King to threaten a mate or gain any material or positional advantage, infact after this white has to settle for a draw with perpetual checking which is...) 18...d6 19.Qg5+ Kh7 20. Qh4+ kg8 21.Qg5+
1/2-1/2. (If white wants to continue playing the position instead of perpetual, Black will have a slight advantage of around -0.4 and you can still play on with) 18...d6 19.Nb5( attacking pawn on d6) 19...f6 20.Nxd6 Nxd6 21.Rxd6 ( and the game goes on, though you have 3 pawns for his knight, after the exchange of queens and the other pieces at the right time, black with an extra knight will fight for the win, and white should play for a draw and achieving it shouldn't be hard. So instead of Bxh6, you could have just continued to play the position with 16.Be3 or 16.f3, white will have a good positional advantage)
16...Nd4?? (I don't know why your opponent played this, it just weakens his e5 pawn and does nothing else to defend white's Bxh6., black has totally worsen his position after this)
17.Rxd4 ( this is not a bad sacrifice, white still has the advantage of space, open king, isolated black pawns, 2 extra pawns for the exchange down, after this the way you carried on to play is fine because the endgame results you in a win, yes even if black hadn't given you the opportunity to mate him as you are 3 pawns up for the exchange, you can create passed pawns and black can do nothing to prevent the loss. But the best continuation than 17.Rxd4 which helps you to see the win right away was...) 17.Bxg7 (Completely opening the kingside, also gets back the sacrificing bishop which you will see in couple of moves) 17...Kxg7 (the best black can do, but still hopeless) 18.Qxe5 ( attacking the d4 knight and also threatening Qg5+. White gains the sacrifice back with a huge advantage even if black plays 18...Nc6 by playing 19.Qg5+ and then 20.Qxf6) 18...Qxc6 ( has to give up the d4 knight to defend the f6 knight which is the only defender around his king) 19.Qg5+ Kh8 20.Rxd4 ( White has huge advantage of two extra pawns, open black king, active rooks, space advantage, and can go on to achieve the win easily)