I'm not a bike mechanic, but maybe you've got something else working there, like too much chain. I guess you're using a 9-sd freewheel that came with the bike?
Maybe the rear dr is bent. Otherwise, I'm surprised that the chain will go off the 30T ring when the front dr's stop is set correctly, or that it would be a frame issue if it did.