Had to download Yolla, top up, call 082135 and speak to Vodacom, who were actually helpful. Apparently roaming wasn't properly enabled (which I'd already known about). Unlike previous calls, they were happy to enable roaming, and my phone connected to Vodafone within a few minutes. VoWifi wasn't working, but after restarting device in flight mode, it connected via VoWifi and now I can make calls to SA and send/receive SMSes.
One thing that's still not working, and has not worked ever while roaming, is inbound calls. All calls go to voicemail - probably a good thing due to the amount of spam calls I get - I don't really want to be paying for those anyway.