'I'm not so well' isn't wrong, but it doesn't sound very idiomatic to me in normal conversation. Literally, 'well' did historically mean 'healthy' (= gesund), but this historical sense isn't used as often in modern English except in certain limited contexts, like the verb 'to get well' (= return to health after an illness), or phrases like 'He's not a well person' (= He's not in good health).
To express a temporary state of health or emotion, instead of just 'be' alone, we often use a verb like 'do' or 'feel':
(1) I'm not doing very well
in life - I'm depressed, discouraged, having problems
(2) I don't feel very good
inside myself - (a) physically: I'm worn out, my back hurts, I might be getting the flu; (b) mentally: I'm uncomfortable/dissatisfied (I don't feel very good about it = I'm uncomfortable/dissatisfied with it, e.g., a situation)
(3) I don't feel very well
old-fashioned, formal, or BE for (2)(a)
And of course you can use other tenses:
I haven't been doing very well lately.
I haven't been feeling very good/well lately.
and other adjectives:
—How's it going?
How're you feeling?
—Not very well. (standard/formal)
Not very/so good. / Not so well. (normal)
Not so great/hot. (casual)
Some of this may be more AE; BE may have other options.
'I'm good' can indeed now mean 'I'm fine' or 'Ich bin zufrieden,' even though literally and traditionally it means something more like 'I'm a good person' or 'Ich bin brav.' You could think of it as current slang in the sense that it's a fairly recent phenomenon and first became popular among younger generations.