To at least partially answer the Question, this is what I found out so far
1.) locale support in MinGW seems broken
2.) when retrieving a path with std::filesystem it is correct internally
3.) ofstrem and ifstream can take filesystem ::path, so if you retrieved an path with umlauts, you can load and save data with this path utilizing ofstrem and ifstream
4.) as soon you want to manipulate the path - need of conversion to a string and back to filesystem ::path - things go wrong. So e.g. if you replace the extension without touchning the part of the path with the umlauts, thats fine. If you replace the filename, even if you just retrieved the filename and appended some string, it goes wrong
as of today these are my findings with no solution to point 4