in my E36. Turned out to be the seal for the fuel sender unit. Located on top of the tank, so only seeped when very full. I just had this fixed and have only filled it up once since the fix. But so far the smell is gone.
Couldn't find the "leak" myself, so took it to my indy shop. They identified the problem right away. Cost $90, but worth it...