Haven't read the whole thread, but I am starting to think a lot of the reasons are based around expectation and determination of the individual and the parents themselves.
I know that my parents generation experienced a great deal of social mobility, despite coming from poor and underprivilaged backgrounds so I think we need to stop making excuses for people NOT to do as well as they can, and start having MUCH higher expectations of people DESPITE their various backgrounds.
Three generations ago, during WW1, my Grandfather's parents were tythe workers on a farm - no money, education AND they were expected to toe the line. When G.Grandfather went to fight, the whole family was thrown out of the tythe cottage as he'd been TOLD to stay and work by the then landowner. DESPITE the various disadvantages my family - on both sides - have faced, my generation are all home owners, who are well educated and work.
Grandparents had little education and rubbish jobs, plus poor prospects. They seemed to have really high expectations of their children, including the girls. Hence IMVHO, two generations on we've gone from poor to quite well off.
So, what does hold people back?
Maybe a sense that even if they don't try life should be handed to them on a plate and the playing field should be completely fair and even...
Well, life isn't fair in any sense, nor can we engineer a society to have equal outcomes for everyone. I would love to see more women and a wider diversity of backgrounds represented in the Cabinet, but lets stop making excuses and start having high expectations of all our young people - even the ones on council estates who go to comprehensive school.
We have free healthcare, education and a wide range of support and opportunities in our society, if people are willing to work hard and take the opportunities. It's not as easy as it was 2 generations ago as there are more people and so more competition, but it can be done.