Tonsils can cause an odour as can your stomach. You should see your doctor and have these problematic areas assessed. I
If you are brushing and flossing thoroughly every day you may want to add an antibacterial rinse such as Crest Pro Health to your regimine. There is a rinse called CLOSYS that is available through some dental offices which is meant to control bad breath for up to 8 hours. It also acts as an antibacterial and has no taste to it.
Stress is another factor that affects breath. If you are under a lot of stress your breath can be bad.
You can take a look at this site. People from all over the world actually travel to Toronto for this treatment. I have met the owner of this company and she has been doing halitosis research for years. You may find some answers here.
Fresh Breath Clinic | Bad Breath + Halitosis Treatment | Toronto Canada
Good luck. I am well aware how this problem can affect your day to day life.