More on code switching
When I lived in Taiwan I was in a multilingual environment. The main languages I encountered there were Mandarin, Taiwanese and English. Sometimes I came across speakers of Japanese, Korean, Hakka or Spanish as well.
As a student I had friends from many countries and we tended to communicate amongst ourselves in Mandarin. In some cases this was the only language we had in common. With other students from English-speaking countries I generally spoke English, unless we were with people who spoke little or no English.
At work I spoke a mixture of Mandarin and English, with occasional bits of Taiwanese thrown for good measure. With colleagues who spoke both Mandarin and English fluently, I spoke a mixture of the two languages switching between them frequently, though some conversations were mainly in Mandarin, and others mostly in English.
Quite often when we were all be talking in Mandarin, I found myself talking Mandarin to the other Western colleagues, which felt a bit strange. When our boss was with us we all spoke English because his knowledge of Mandarin and Taiwanese was minimal, but I think some of my Taiwanese colleagues with limited English found this awkward.
I’ve heard that some people in Taiwan who speak Mandarin sometimes play the dumb foreigner and pretend they don’t. Apparently it can be quite an effective way of dealing with problems as locals don’t expect you to understand how things work and may be more helpful. Have you tried this?