When I run the flop numbers I get 54.65% equity for the villain. This means it is impossible to offer him the wrong odds, every penny that goes in is more money for him and less for you.
I also get 27.5-14 (9.5+2+16) for the pot odds
being offered. Which is like 1.96-1 and means he needs 33.7% equity to call correctly. He has way more than that and his call is easily correct.
Based on the exact hands, your shove was meh. You risk 16 to win 25.5, and need about 38% equity to get the right price. Technically, you had that (as you had about 45%). The problem is, against his range of possible hands, I doubt you do this well all the time. For example, if he has JJ (a hand any player can wake up with) you have less than 24% equity.
Also, your calling range given to villain is likely too wide. You think he is calling with QhJh here? Most of those should be limited to suited with clubs, not just suited.
I am away from my computer, but I can run the more specific range numbers later. Still, shove is not good. Villain would need to be really really spewy and stationy for it to show a profit. And, that might not be true. You are getting called only when in bad shape here. This is probably the best hand you could have been against, and you were still a dog.