9600 Baud bei 12 MHz wird schlecht gehen. Die Abweichung ist da zu groß.
Die richtigen Einstellungen zu finden ist ganz leicht. Erik Buchmann hat einen sehr schönen
Codegenerator geschrieben. Damit kann man auch sehr schön die richtigen Reloadwerte berechnen.

Wenn du noch einen Tacktgeber brauchst dann nimm lieber den
Timer0. Dieser ist bestimmt noch nicht belegt und du vermeidest konflikte mit dem UART.

Ob dein Code so funktioniert kann ich leider nicht sagen. Probier es doch einfach mal mit den richtigen Einstellungen aus.