I was having a lot of these same problems with my IPAs as well. Especially the part seatazz notes about the late additions getting lost. Lack of punch, just kind of meh. And I absolutely BOMB my late additions (>2# total over the last 20 minutes + WP in 20g). They were still lacking.
What turned it around was water. When I started filtering out the chloramines and treating with CaCL and gyp, it made all the difference in the world.
It cleaned up all of my other brews as well, but the IPA showed the greatest impact.
I use the
EzWaterCalculator spreadsheet, add acid malt to almost everything to drop my mash pH, and calculate the CaCl and gyp additions to balance or tilt to hops or malt. It really is a fantastic tool.
If you're doing PM or extract, at least filter out the chloramines that are in about every water supply in the free world. That's cheap & easy. You can also adjust your wort pH prior to boil (baking soda = up, lactic acid = down) if you have a pH meter and a way to quickly chill a shot glass of liquid to room temp.
Oh, and make SURE you aren't getting ANY O2 AT ALL in contact with it after wort aeration. OK, that's impossible, but as little as humanly possible. Hops oxidize incredibly easily, and it takes a very small amount of O2 to do it. And it tastes nasty, like burnt cardboard.