I've found the issue - it has to do with the encoding of special characters.
My issue was with "Verfügbar, wenn online", the single reference to $odSyncedValues seems to force PowerShell to encode strings properly, while the same thing does not happen when it is referenced only in the condition?
I am still not entirely clear on how this happens, which is why I'll leave the question up for now.
But the "fix" is to do:
$odSyncedValues = $odSyncedValues | ForEach-Object {
[System.Text.Encoding]::UTF8.GetString([System.Text.Encoding]::Default.GetBytes($_))
}