I think the A level course is very good, as is the further A level course, they cover a wide range and go into a good amount of depth.
The GCSE is very basic, but it does prepare you enough for A level. The main problem with GCSE is that it’s quite basic as everyone needs to be able to do it. If you made it harder, you could teach more, but why? It would only benefit those who aren’t going to do the A level course, unless you increase the difficulty of that as well, which in turn will only benefit those who don’t do a degree that involves a level of maths.
I don’t think there’s a massive problem with the structure at the moment, or the teaching (although I only have a relatively small sample of teachers to go on). What I think would help the most is smaller class sizes. 20-30 is too big for one teacher. To see the most improvements I think you need classes no bigger then 15. But that’s easier said then done, of course.