Danke für die Antwort. Das Problem war wie von Martin erwähnt auf Clientseite, genau genommen Powershell.
Powershell zeigt zwar den Code als UTF8 an aber Invoke-WebRequest verwendet beim ausführen ein anderes Encoding. Man kann es aber auf UTF8 zwingen:
$body = [System.Text.Encoding]::UTF8.GetBytes($body)
Invoke-WebRequest -Uri "<cmdb URL>" -Method Post -Headers $Headers -Body $body