The culprit seems to be the utf8_encode() function in Categorize.hooks.php, e.g.:
$l__label_value_to_print = utf8_encode(str_replace("_"," ",$l__label_value));
$l__label_value is read correctly from LocalSettings.php but $l__label_value_to_print gets corrupted.
"Please note that utf8_encode only converts a string encoded in ISO-8859-1 to UTF-8. A more appropriate name for it would be 'iso88591_to_utf8'. If your text is not encoded in ISO-8859-1, you do not need this function. If your text is already in UTF-8, you do not need this function. In fact, applying this function to text that is not encoded in ISO-8859-1 will most likely simply garble that text."
http://php.net/manual/de/function.utf8-encode.php
Removing that function does resolve the issue, only the AJAX suggestion still doesn't work with umlauts.