I have a PanelTextSettings with Asian languages and its fallback fonts are defined as follows:

We have DefaultFontAsset for Latin script and then we have fallback fonts for Asian ones:
- JP for Japanese,
- KR for Korean
- SC for Simplified Chinese
- TC for Traditional Chinese
- TH for Thai
But our Chinese users are reporting, that they are seeing glyphs in their language, that are from Japanese FontAsset. In the current setup it is actually expected - since those glyps are both needed in Japanese and Chinese localization, so they are in both TextAssets. And since Japanese is first on the list, the glyph is found in it.
So I need to update that order every time user changes language. After each change we reload the scene, so I thought it should be easy. First I just created 5 copies of this PanelTextSettings asset and as first thing, before any UI is generated or shown, I update PanelSettings and assign proper asset to textSettings field. This works, however it is problematic. First of all I need 6 copies of the same TextAsset. Now any change requires modification of 5 assets, not only one. Secondly, we have more then one PanelSettings assets, so we need to do it in many places.
So, my second idea was to have only one FontAsset and edit the order of fallbackFontAssets at the same point in time. But this doesn’t work. The Debug.Log after the changes shows, that the order is correct in the fallbackFontAssets, but the UI behaves as the asset is in state when the game started. No changes are recognized by the UI. Am I missing something? Do I need do reassign it again in PanelSettings or something?
Or maybe there is a better way to do it?
Here is a code sample of the code that is doiing fallbackFontAssets reorder:
public void Update(string languageCode) {
var panelTextSettings = Resources.Load<PanelTextSettings>(PanelTextSettingsPath);
var fallbackFontAssets = panelTextSettings.fallbackFontAssets;
fallbackFontAssets.Clear();
AddFontAssetsInCorrectOrder(fallbackFontAssets, languageCode);
}