At 9600 baud each bit time is approx 104us.
The max error for a UART is about 5%, so that only allows for about a 5us variation in the bit timing, which at 32MHz translates to 20 ASM instructions. That's probably eaten up by the 'Save System' alone.
With all those other interrupts going on I can't see a software uart working, even one driven by a timer.
What's wrong with the hardware UART?
EDIT - strick some of that timing above. The output is generated by a periodic intr, so as long as the isr time doesn’t exceed half the bit time you'll probably be OK. Still, that could be a problem...