Flights to South Africa are extremely pricey over the South African school holiday period (starting around early December), so flying out earlier and coming back in early January is better than flying out in mid December and coming back in late January. All the major airlines such as Virgin and BA fly from UK to South Africa but flying direct is normally a lot more expensive. It seems that flights that go via Arabic countries are cheaper. Etihad Airways (www.etihadairways.com) often has some very good offers on flights, and worth checking them out.
South Africa is a great country to visit for a holiday and am sure you will have a lovely time there.