I would push back on this: Comair does business as British Airways, and presumably you were booked on BA flight numbers on one ticket (CPT-JNB-LHR)?
EU compensation is based on when you arrive at your final destination, so you could potentially receive compensation for delayed arrival and downgrade. There is a whole threat on EU261 on here, suggest you check that one.