The only way to do this is to manually set the bgm after any event that changes the music. For instance, say you are playing an event and you use Scene 1 as the music at the start of the event. Even with the map bgm set, if you do nothing afterwards, scene 1 still plays on forever. So what you need to do is set your town music (say Town 1 for ease of reference) after the scene. So the code would go like this:
Set BGM to Scene 1
Play your event
Set BGM back to Town 1
You have to remember to do this every time though. Also if the map has a BGM it will do the following to you on a transfer
Set map bgm
Then run your event, which would mean you get part of the map bgm for half a second, then scene 1 (which, from what I'm gathering, is what you are trying to avoid)
The only fix I found was to turn off the map bgm totally, then set it when I transfer to the map. If this map is the starting map, you will need to do an autorun to set it, then once it sets the music, set self switch a to on, and create a blank event page for when self switch a is on (else it will be stuck on the autorun non-stop and you will never be able to move). This will then set the map music until you change it via an event or other. If you do this though, make sure to always do the following on any map transfer:
Transfer to the map
Set map BGM
Do those in the same event. The set BGM code still runs, even after the transfer.