It could have something to do with the "meta_box_cb => 'post_categories_meta_box'" in your custom code. Can you remove that to test, and then see if the terms show in the translation without that? That meta box forces WordPress to render the classic Categories-style checklist metabox for this taxonomy. That metabox relies on wp_terms_checklist() → get_terms(), and WPML filters get_terms() in wp-admin to the current admin language.
So if your Fitment terms are created only in the default language and don’t have term translations, the checklist in the secondary language can look like “nothing exists,” even though the terms exist in the default language.
One other thing to test is to register taxonomy on init priority 0 to avoid “registered too late” edge cases.
Please test these and let me know if this changes anything.