Měl jsem podobný problém a vyzkoušel jsem všechna nastavení, která jsem našel na webu - marně.
V mém případě byla problémem konfigurace samotného FreeTDS. V Linuxu je soubor /etc/freetds/freetds.conf
Musel jsem změnit verzi na 7.0 (možná fungují i jiná čísla. Právě jsem zkusil 7.0)
[global]
# TDS protocol version
tds version = 7.0
Poté se zdálo, že řidič přijal změny znakové sady jako.
ini_set('mssql.charset', 'UTF-8');
Btw:změna se projeví okamžitě, není třeba poté nic restartovat