Ik had een soortgelijk probleem en probeerde alle instellingen die ik op internet kon vinden - tevergeefs.
In mijn geval was het probleem de configuratie van FreeTDS zelf. Op Linux is het bestand /etc/freetds/freetds.conf
Ik moest de versie veranderen naar 7.0 (misschien werken andere nummers ook. Ik heb net 7.0 geprobeerd)
[global]
# TDS protocol version
tds version = 7.0
Hierna leek de bestuurder wijzigingen van de charset te accepteren.
ini_set('mssql.charset', 'UTF-8');
Btw:de wijziging is onmiddellijk van kracht, u hoeft daarna niets opnieuw op te starten