Eu tive um problema semelhante e tentei todas as configurações que pude encontrar na web - em vão.
No meu caso o problema era a configuração do próprio FreeTDS. No Linux o arquivo é /etc/freetds/freetds.conf
Eu tive que mudar a versão para 7.0 (talvez outros números funcionem também. Acabei de tentar 7.0)
[global]
# TDS protocol version
tds version = 7.0
Depois disso, o driver parecia aceitar as mudanças do charset como.
ini_set('mssql.charset', 'UTF-8');
Btw:a mudança está em vigor imediatamente, não há necessidade de reiniciar nada depois