I have used WFS-T to through GeoServer to edit data on a MS SQL server before. It was through a Leaflet.js plugin, not through QGIS, but my experience should at least confirm that it works.
I remember that there were some field types that GeoServer couldn't edit though, including UUID fields and possibly some types of Geometry (maybe it was Geography or Multi-Polylines/Multi-Polygons?). If the offending fields were present in the row the whole record couldn't be edited.
GeoServer is probably logging the error. Log in as an admin and go to Settings -> Global -> Logging Profile and change the VERBOSE or one of the *_DEVELOPER logging profiles and then watch the log as you make a save request.