I am translating, for example, the entry with ID 31131 (pl version) into Czech. In the original entry I have 33 tags. After translating (ID 67830), I have only 5 of them.
So yes, it is possible that when you created one tag it translated.
I also wrote about this before, at the beginning none of them were translated. After the changes that you suggested to me the tags began to translate and I thought it was ok. However, it turned out that they do not always translate all. Sometimes 95% translate, sometimes 100, but also sometimes only a few percent. I have not found a dependence here whether it is an old or new tag.
I did the update manually, and then send to translate automatically.
I also tried to reproduce it from scratch, without luck.
You can log in in my test site by following this link: hidden link
All the tags were translated automatically. I sent all the post in two batches. And all the tags are translated here: hidden link
and included in the posts' translations.
Note that the translations just add the languages prefix as the sites uses a fake translation engine to avoid charges, but for testing purposes it works as any other engine.
I think I have to give up. In your case it works and I believe you. In my case, as I wrote, it works, but it does not always translate 100% of the tags. Now on the test environment I did 3 tests and it came out 100% each time, did you change something there?
Maybe it is a matter of some strange data in the tags, however the site I have is large and old 😉
It seems to be an edge case as you mentioned or something related to the production environment, as you said it worked for you too in the staging site. Maybe it times out earlier, or it has some restriction in place. You can try in production any of the tests that worked in staging. I didn't change anything there.
If you find the culprit, and it's related to WPML, I'll be happy to take a deeper look.