I spent so much money and time to learn German (C1 / C2 level), my friends from Germany say that my German is really great, but when I try to speak in German here in CH people often answer me in English or ask me if I understand. Why do they do that? I find this so offensive. It is just a way to tell you do not try to speak in German because the language does not belong to you. Or on the other end it could just be an inferiority complex Swiss have when speaking in high German as High German is not their language. In any case, I have thrown time and money in learning German which seems to be totally useless for me.
I would not call it inferiority complex, but it is indeed true that many Swiss-german speakers find it difficult to speak German. I know quite a few who prefer to switch to English than German.
We don’t know what you sound and look like, do we?
If you have an English accent, they may be trying to accommodate you and/or practise their English with you. If you have an uncommon/little-known accent but a very good command of German, they may find it harder to “tune in” to your speech and understand you. (As an example, while many Indians will be very proficient in English, yet Swiss may find them harder to understand due to very few exposure to Indian accents - as opposed to American accents).
In any case, while I can understand that it’s frustrating, I doubt that it’s meant offensively.
I have had a few calls last week, with Swiss that stuck to speaking Standard German to me - and me answering in Swiss German. In other words: no one speaking their “native” variety - I just shrugged it off.
Can’t you just tell them that you don’t speak English?