WPML language switcher doesn`t change the language when category or sub-category pages are opened. It shows English menu by default and change language to the appropriate language (polish is set up at them moment) but only on home page. When page is one of the categories page or any other page(not home) - it doesn`t change the language. Despite translations and all the settings are in place.
Your snippet "Product Category Archive Description" is overwriting WPML permalink rules for categories, breaking it. You can check by deactivating it, the language switcher works as expected.
We don't cover custom code in our support, so I recommend that you either deactivate it, or rewrite it using the proper multilingual requirements from WPML. They can be found here: