However in terms of recognition of my skills I feel massively undervalued. The management are business consultants rather than technical people, and there's a pervasive culture that technical work is something to be outsourced/offshored and generally done by the lowest bidder. I was hired as a "Technical Consultant" and yet I've repeatedly had to fight to do technical roles.
I often think about leaving to get a pure web developer role, but I'm still at quite a junior level and junior dev salaries here in London are awful.
Plus having to go through a long appraisal process at the end of every year which is essentially a test of how good you are at networking and self-promotion, rather than what you've actually acheived.
I keep thinking I'd be happier in either a startup or a corporate dev team, but I guess the grass is always greener on the other side
Turn your question on its head - who here feels overvalued at work?
How did I get here? I built new products that were my own ideas, and they generate revenue for the company now. I know our entire stack so I'm able to pretty much build whatever I want. If you do the same for any company you'll start to look valuable in a hurry. Learn your business, apply some insight and make something new.
FYI, I didn't work my ass off for this, I was able to do this 9-to-5.
Perhaps this is a reverse Dunning–Kruger effect? When each team member has a unique set of skills, how can you evaluate competence in each other, if you are not even able to properly evaluate your own skills until you become an expert?
Afterward, instead of trying to buy happiness, it would be more advisable to appreciate yourself. If you don't appreciate yourself, then you may want to find something that gives you a purpose in life, even if outside of work. There are many worthwhile causes in this world -- many things in need of care. If you can find something where (a) you care personally and (b) you can make a difference, then (c) you may have found purpose.