Dass man den Source-Code neu kompilieren muss, das ist klar...
Direkte Codekompatibilität gibt es nicht - aber dein Header erzeugt dir nicht zwei zusätzliche Timer oder einen UART...

Aber die eigentliche Sache ist, dass du eine Änderung vom 16F648 zum 16F84A vorschlägst, aber die Empfehlung von Microchip in genau die andere Richtung geht... Der 16F84A hat nen End-of-Product-Cycle auf 2006, also wird man mit dem keine Neuentwicklung mehr anfangen...

Die Reihe um den 16F627/628/648 ist dafür gedacht um die 16F84 zu ersetzen, und nicht anders rum. So hat zum Beispiel der 16F648 zwei 8-Bit-Timer, die der 16F84 nicht hat; genauso wie UART und nen internen Oszillator...

Sobald der ursprüngliche Entwickler irgend etwas von den neuen Funktionen genutzt hat, lässt sich der Code nicht mehr ohne weiteres auf einen 16F84 kompilieren - egal, wie du es versuchst...

MfG
Stefan