I must admit that had you asked about this before travelling - often a good idea incidentally - I would probably have gone into the group of people who would have said "oh that's fine, just have your onward ticket/boarding pass ready".
But I would have pointed out (I hope) that BA, and other airlines, are unfortunately encouraged to deny boarding in problem cases, grey areas, edge cases, but usually they then try to be helpful with rebooking, which seems to be happening here. There are some alarm bells. China passport holders often feature in lists of immigration infringements, globally, often in the top spot. Going via SA on mixed tickets when there is a direct service available is another red flag. The fact that a visa was turned down. The lack of checked baggage when there are children and a holiday involved. Somewhat odd travel arrangements with a mysterious dad already in SA remotely trying to resolve matters rather than being in London. Put together I can see the BA's agent point of view. Had you been in London I think it may have reduced the red-flagness simply because it's a slightly more frequent occurrence.
As I suspect you know already, getting your wife on to another passport is probably going to be a priority, going forward.
Looking at CoC / T&Cs is a waste of time: agents are simply empowered to make these decisions and will be backed by the airline. But because of the fuzzines of this I would expect BA to try and resolve the travel issues or refund the ticket, I don't think that's controversial. You would, however, struggle on EC261 / IDB on this because IDB due to passport/visa concerns is based on the word "reasonable" - that's in the Regulation - and however you look at it there was a reasonable concern here.