Your explanations shows clearly that there is a lot information missing to understand the whole problem.
In general, emails can be sent from the frontend, this happens when the customer used the checkout or when a payment does an order update.
But the emails can also be generated from the Backend, when the shopowner changes the order status there.
Then emails can be in shopper language, or in shop default language (joomla Frontend default language). The same counts for the administrator email, which language should be taken? Administrators in the BE want the language which they just use, but in general it uses the default language of the shopowner (vendorid =1).
Then it makes additionally a difference if you use english as shop default or not, because english is anyway loaded as fallback. That was important in the old system, when used always the same language object. Now it is not a problem anylonger (3.0.18.9), because we use for any language an own JLanguage object.
So we use always our own JLanguage objects, so when you manipulate the JLanguage object given by JFactory::getLanguage, it is imho luck when it works. It could work with some php versions, lets say it that way, because I do not a clone of the object setting it to our own variable.
The next problem is that the code loads here and there language files. So when you create the order, the userfields and in special the country list already loads the language and so you get a wrong language, when you load the order and set the language then. You will get a partly translated email. The problem is worse with pdf, btw (header and footer, vendor information!).
There is no bug and there is nothing to fix. You just need to check how I rewrote the order loading and do the same (model orders, function notifyCustomer around line 1688)