You would normally first migrate your line back to Telkom, and then migrate it to your new ISP. You cannot migrate directly from one ISP to another (as far as I know). I think you have to give MWEB one calendar month notice. (See here for more info:
Notice to all!!!!!: Mweb downgrade and cancelations!)
A quicker and cheaper option that I've read about here on the forums is to downgrade your MWEB account to an email only account, and put in a cancellation notice immediately after you've downgraded. You will pay something silly like R25 for the month, instead of you full uncapped package. Do this temporarily so that you can get rid of MWEB quicker and while spending as little money on them as possible. You can then sign up with Afrihost for a data-only package, and begin the process of migrating your line back to Telkom.
The migration usually takes about 1 week, but has happened sooner in my experience. Once it is with Telkom, migrate it to Afrihost, and then bundle your line with the capped or uncapped account you signed up for earlier.
Don't worry too much about the billing on the Telkom and Afrihost side. They will both bill you pro-rata for the exact number of days your service was active with each of them. If you've been billed in advance, you will get the difference credited back to you at the end of the month. Both Telkom and Afrihost are pretty good in this regard.
I would keep a very close eye on the MWEB billing, as they sometimes mess it up.