I can relate to all the experiences above but I think through my struggles I am also winning a little bit.
I had a R399pm contract (Sim Only.) I have been struggling the past month to cancel the contract (switch to prepaid to switch network), as they cannot seem to find my payments for May and June. According to them, I have to pay an early termination fee of R1197.00 (R399 + R399*2, one month's invoice + 2xmissing payments). When I speak to the accounts departments, they can see I made all the payments, but the retentions department cannot for some reason.
Then, when I went into the app I saw a notification for upgrade. Then I went into the store yesterday, "upgraded" to a new 24 month contract of R39pm. This morning I called retentions and all that I have to pay to close the account is R154.00. Suddenly now, they can see all my payments and my early termination fee is now based on the R39pm contract and not the R399pm contract.
I have now made the ETF payment, so hope I get the letter soon.