Parental choice is the worst concept ever invented when it comes to overall educational standards. Trying to create a market in education merely ensures that the engaged 'pushy' parents (IoW middle class) get their kids into the good schools, whilst those kids whose parents are poorly educated, or just don't understand the system (immigrants may fall into this category, especially if their grasp of English is poor), end up stuck with whatever school they happen to get into, which will invariably be pretty bloody awful.
Add private education to the mix, and well it gets even worse. Although in reality the mass private education that has expanded in the last 15-20 years has really only ensured that the mediocre offspring of the middle classes don't have to mix with kids whose parents might be plumbers, or get by on benefits, etc...
So really we have two problems. Firstly that of parental selection, which skews the system (including private education) in favour of kids whose parents know how to play the system. To solve this there are IMHO one of two options:
1. Make all schools the same, as far as is practically possible anyway. Same funding levels, same class sizes, etc...
2. Have a system of several different types of school to meet the varying needs of different pupils with differing abilities. IoW have highly academic schools, technical colleges and so on. Ensure that all at least teach the basics, reading, writing, maths and so on.
The critical factor is that the children would be subject to constant assessment to ensure that they are placed in the right school to satisfy their educational needs. 'Problem children' should of course be sent to military boarding schools and signed up for service in Afghanistan as a matter of course, which would help to both control their temperaments and put their violent tendencies to good use.
The important thing is that the only point at which the pupil or parents would have any 'choice' to make is if their child is assessed to be borderline, or perhaps there are more than one school that would best suit their educational needs within their area. And of course in rural areas these schools would have to be pretty small, or involve a lot of long-distance school bus services.
And of course the second problem, private schools. Well, there is a very, very simple answer to this, whether the above is implemented or not. Place a cap on school fees, just as there is on university tuition fees. And then of course ensure that this fee cap is set quite considerably lower than the level of funding per-child that the school would receive for state pupils. Oh and obviously remove charitable status, that really is taking the piss...