Algo parecido me sucedió...
Los síntomas eran los mismos, Acentos en base de datos Firebird correctos, Ñs bien, etc...
Al presentar la información con PHP no se presentaban los caracteres en forma adecuada al valor almacenado.
1) PHP estaba configurado para representar los caracteres en UTF-8.
2) Mi base de datos firebird utiliza el conjunto de caracteres ISO8859-1.
Solución: Al momento de realizar la conexión en PHP le indico que el set de caracteres sea UTF-8...Y asunto solucionado...
Sintaxis:
PHP IBase-Connect
Código PHP:
$db=ibase_connect ('/home/Data/sample.fdb', 'sysdba','masterkey','UTF8');
No quise tocar la configuración de PHP, también habría sido posible indicar en PHP.Ini que utilice ISO8859-1.
Código:
PHP.INI
default_charset = "UTF-8"
Mira
default-charset sobre configuración de PHP y conjunto de caracteres