"Is there such a thing as an internal vent that fits on the top of the drain that has some sort of flap valve to prevent smells which may have stuck open?"
Yes, there is, it's called an Air Admittance Valve (commonly a Durgo valve), and it is designed to prevent water being sucked from the traps of wash-basins, shower trays, etc. when a toilet is flushed. The flushing action dumps a charge of water into the soil pipe, and this can create a vacuum effect on smaller pipes that discharge into it.
Over a period of time it's possible that the AAV can fail, and allow soil-pipe smells to escape. It's not a problem when these valves are fitted externally, as they sometimes are when lofts are converted, but if the valve is inside the building it can give rise to the smells you're getting.
Something to check first - if you have a room that isn't used very often, and there's a wash-basin or shower in it the water in the traps can evaporate enough to break the trap seal, and this allows soil-pipe smells to escape. Shallow-seal shower traps are particularly prone to this.