Problem:
Plugin strings not translating after WPML default language change.
Solution:
Delete and recreate the translation strings in the WordPress admin dashboard, under WPML → Translations.
In WPML → Translations, find the string - you can select domain of your plugin in the "Select strings within domain:" drop-down and use the "Search for:" field and search for part of the string to be translated
Select all occurrences of the string and click "Delete selected strings" button - before this please copy the existing translations and save them somewhere for the later step
At the bottom of the same page, in "Auto register strings for translation", activate the "Look for strings while pages are rendered" checkbox
Reload the front end where plugin is active - plugin code should execute when the page is refreshed
Go back to WPML → Translations, clear the "Look for strings while pages are rendered" checkbox, and perform the same search for the string again, it should show up on the list as "Not translated"
Insert your saved translation from step 2, save, mark "translation is complete"
The translated string should now show up on the front end.