Ho avuto un problema simile e ho provato tutte le impostazioni che sono riuscito a trovare sul Web, invano.
Nel mio caso il problema era la configurazione di FreeTDS stesso. Su Linux il file è /etc/freetds/freetds.conf
Ho dovuto cambiare la versione alla 7.0 (forse funzionano anche altri numeri. ho appena provato la 7.0)
[global]
# TDS protocol version
tds version = 7.0
Dopo questo, il driver sembrava accettare le modifiche del set di caratteri come.
ini_set('mssql.charset', 'UTF-8');
A proposito:la modifica è immediatamente in vigore, non è necessario riavviare nulla in seguito