Mit dem "gbak -R ..." Restore überschreibst du die mit CREATE DATABASE erstellte Datenbank, darum macht das CREATE DATABASE keinen Sinn. Der Umstieg von 2.1 auf 2.5 kann High-Level mäßig wie folgt skizziert werden:
1) Backup der Datenbank mit Firebird 2.1
2) Restore der Datenbank mit Firebird 2.5
Hiermit bekommst du eine Datenbank mit einer Firebird 2.5 ODS (On-Disk-Structure). Firebird 2.5 kann sich allerdings auch auf eine Firebird 2.1 ODS Datenbank verbinden, d.h. um Firebird 2.5 mit einer 2.1 Datenbank zu verbinden, ist notwendigerweise kein Backup/Restore notwendig, aber es wird empfohlen.
In 2) könnte sich allerdings herausstellen, dass "Malformed-String" Einträge in [VAR]CHAR / BLOB Felder enthalten sind, dann müßte man im Schritt 2) die unterschiedlichen -FIX Parameter von gbak.exe anwenden. Bzgl. Backup/Restore mußt du nicht notwendigerweise über gbak.exe gehen, sondern könntest auch ein Backup/Restore über die Services
API in deine Anwendung direkt integrieren, sofern UniDAC dieses Firebird-Spezifikum unterstützt. IBDAC hat fürs Backup/Restore spezielle Komponenten, wobei ich jetzt nicht sagen kann, ob die -FIX Parameter hier auch unterstützt werden.
EDIT: Ich denke, ich kapiere nun, dass du auch eine Zeichensatz-Umstellung von NONE auf UTF8 vorhast? Da hilft dir kein Backup/Restore.