1. what is the difference between нужно , надо and должен .
in english "have to" means necessity (вынужденность,необходимость) in weak degree, "must" In duty degree. In Russian degree "надо" is meant from a context
degree "нужно" weaker then "надо" in a case "have to"
must - as a public rule
have to - as a personal rule, moral standards of the certain person
need - requirement of the person, both moral, and physical.
Мне нужно сходить в магазин. (Mother says when it wasn't vitalt to go here to her )
Вам надо доделать этот отчет. (The boss says when he gave the strict commission to the subordinate)
The sensible-word-formation dictionary:
Нужно - An estimation something as necessary that it is necessary to make/To have.
Надо - The colloquial - нужно, необходимо.
2. ".....is this right?" yes, you are right.
3. sorry for errors which meet in comments. A question is really very interesting and it's difficult to translate correctly all nuances. good luck! It is glad, if i could help you