Sounds like really really bad handling by both DL and AF for leaving you stranded. Not surprising that the JNB agents couldn't do much since its an outstation... however I would think that either DL or AF center/ticketing should've been able to resolve it. Did you try contacting the AF help line/call center to get it resolved? Or did anyone at the counter in JNB contact them?