I found a work around. It’s not ideal but it seems to work. You use the currency converter and set it to show in the shop or product pages.
I first setup payfast with zar as my base currency. Then I swapped over to usd as my base currency to do paypal. Using usd as my base currency and then people can manually switch to zar… it shows payfast as an option for some reason. So it works… if though, in theory, it shouldn’t