I would say you have mineral imbalance.
I state that because I have had exactly the same trouble.
If you have metal fillings - mercury is a super oxidiser and will deplete mineral levels and cause mineral derangement.
Overall I think that copper gets depleted and despite what many say it is essential for the regulation of many other minerals & many other processes.
Low copper will lead to high iron esp iron that is not bio-available and a proliferation of bacteria and fungus will infest your body causing the smell.
To get a full mineral profile the best natural supplement is grass fed liver - organic if possible - a good portion twice a week.
or get a powdered version and some empty gel-caps.
I mention grass fed liver because it should have a near perfect mineral profile with plenty of other good stuff and is in no way harmful so cannot hurt to try.
If this helps to improve your situation please post to let other know.