Condivido il giudizio sull'help con esempi spesso errati o quantomeno poco curati e commentati.
Per il tuo problema purtroppo io mi arrendo.
Interrupts abilitati? variabili correttamente dimensionate? provare a leggere il buffer rx con ASM?
E se il problema fosse il tx?
Sicuro che non ci siano problemi di cavi, adattatori, Baud?
Prova a spedire valori da te fissati senza leggerli dall'rx e vedi se sul PC li vedi corretti e, ancora, puoi attaccare un lcd al micro e vedere cosa dice di ricevere mandandogli solo caratteri ascii rappresentabili (qualche cosa forse lo puoi fare anche solo in simulazione escludendo Arduino e comandando manualmente l'interrupt ma il problema sarebbe inviargli i dati credo scrivendo direttamente nel buffer).
Puoi forse anche testare il solo lato PC (cavi e adattatori compresi) collegando TX e RX degli adattatori...