How does one differentiate between need to/must/have to and should/ought to in Klingon? There is a rather big difference between "I need to do something" (because otherwise something bad will happen) and "I should do something" (because it's the honourable thing to do). 

For "should" or "ought," make use of tlheb urge as in:

qagh vISop net tlheb
I should eat gagh.
(It is urged that I eat gagh.)

qagh DaSop 'e' vItlheb
You should eat gagh (in my opinion).
(I urge you to eat gagh.)

qagh vISop 'e' vItlheb
I should eat gagh.
(I know it's the right thing for me to do)
(I urge me to eat gagh)

jISop 'e' Datlheb'a'
Should I eat?
(Do you think I should eat?)

Note that the object of tlheb is the thing (activity) being urged, not the person being urged. That is, you don't say something like qatlheb (presumably, I urge you). 

The construction is always S 'e'/net tlheb, where S is a sentence whose subject is the person being urged to do whatever the verb is referring to.

For need to and so on, of course, use the suffix -nIS.

net tlheb is a general statement, while 'e' tlheb X means that person X thinks that the subject of the sentence should do something. 

Almost always, the subject of tlheb is "I" or "you" (when it's not net tlheb), but a third-person subject is possible.