I'm working at a similar issue.
What i want to do is use a 3.579545 TXCO as external clock source.
Now i do all the things i found.
My list is:
1) Change at makefile, Xtal value, BPS value for that who have less error, for this case is 9600BPS (I use AVR calculator to analize this)
2) Change all the fuse bits to use an external clock source (H fuse = d0)
3) Rebuild the .HEX file
4) Include a new CPU at boards.txt, in that change all again, xtal freq, buse bits, serial speed.
But i can download a scketch file to the CPU, in fact i never see the E0 when de CPU runs loading the scketch HEX file.
I was doing the maths about this:
UBRRH = (((F_CPU/BAUD_RATE)/16)-1)>>8; // set baud rate
UBRRL = (((F_CPU/BAUD_RATE)/16)-1);
UCSRB = (1<<RXEN)|(1<<TXEN); // enable Rx & Tx
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); // config USART; 8N1
But it's OK and the maths of this and the obtained from the AVR calculator are the same, in fact the error at 3.579545 in 9600BPS is less that 0.2%.
Ideasssssss??? I'm stuck here :-[