Unfortunately, we do not have documentation for this feature in the C# wrapper. However, we can test some things together to narrow down the root cause of the issue
First can you try commenting out the language code you have now and change the language ID to another built-in language? This will see if the language can be changed at all. In the C++ demo I changed the language to Spanish.
initParam.emLanguageID = ZOOM_SDK_NAMESPACE::LANGUAGE_Spanish;
Note, the changing the language will only effect the words that are in provided by the SDK itself, so you will have to join a meeting to see the language update.
Second, try opening your custom file in your application to verify the path is correct and the file can be found.
Third, if both of the above two can be done without issues, try your code above again. I do not think you need the line param.language_id = (SDK_LANGUAGE_ID)11;