Done that trip a few times.
YYZ-GRU is traditionally bad for upgrading. Also, GRU is not exactly a nice airport to hang out or to take a quick city tour. You'll arrive in the morning and leave at night - painfully slow day. You could grab a day hotel, of course.
LHR is a better stop to kill a day. Good day hotels there.
Last time I went LHR - FRA to kill some time and took LH's A380 down to JNB, just to see what it's like. I had the emergency exit seat in both directions which made it bearable (... other than that it was disappointing). LH/FRA has excellent lounges to hang out.
Beware of SAA's tired A340s.