надо=нужно=a need, necessity. Должен is more of an obligation, something that is expected from the subject. They are quite interchangeable, I think like in English. You can see the difference in the dictionary.
Also the usage is different: я должен/должна but мне нужно.
In English, "Should" isn't always an obligation, but more of a suggestion sometimes. like, "You should try the pork! It's delicious!"
Does должен also mean it be a suggestion in certain scenarios?
And if должен is ALWAYS obligation-related, then what do you say to suggest something?
And Should, in English, also could be used for expectation of an event, or math problem. Like saying "Well, if I have calculated the data right, then you SHOULD have 500 dollars left, after tax", or "They say it should rain tomorrow"
So what about those? still должен, or something different?
"Should" can often be translated as "должен". Your examples are expectations, as I said, it's for "должен": "завтра должен быть дождь", "у тебя должно быть 500 долларов".
So would "I need to eat less bread" (which is how I would probably express this in English) be an acceptable answer, do you think?
I think you need to stick with the closest translation: I have to, I should, I ought to.
A bit late now, but in case you're still interested, I translated as "need to", and it was accepted. I think "should"/"need to" are pretty interchangeable in English, especially if you're talking about changing bad habits. It's not something you categorically must do, but there's the sense that it's desirable.
Is there a reason why it is not мне должно, just like it would be мне надо? Or is it just a different structure that I have to memorize?
"Мне до́лжно" meaning "I should" is archaic except maybe a few cases: мне должно́ быть (стыдно), ему должно́ стать (лучше).
I don't think there's any solution except paying attention to the meaning. Just like some cases in English, two different words have the same spelling: «есть», to eat, versus «есть», is.
(I'm pretty sure that «ест» without the soft sign always means "eats" or "eating", though.)
If you analyze the grammar around «есть», you should be able to tell the difference between "to eat" (infinitive) versus "is" (present tense). For example, in this sentence, «есть» is a secondary verb, after «должен», so it should be an infinitive form.
But I suspect that in most conversation, the difference in meaning will help you as much as the verb tenses. I had to stare at this one for a moment in confusion ("I should be smaller bread", what?) before it clicked (bread → eat).