First, get a file for your custom song. The format can be mp3 or wav
Second, put it in the tf/sounds folder. If it doesn't work, use tf/custom/my_custom_stuff/sounds
If it doesn't exist, create it.
"my_custom_stuff" can be replaced with any other name.
Third, put an ambient_generic in your map. Set the sound to your custom stuff. In the "flags" tab you can check "Play everywhere" and uncheck "Is NOT looped" if you want.
Fourth, put something that turns on the ambient_generic via outputs/inputs. This can be a logic_auto(set it to OnMapSpawn) or anything else.
Also, if you want your song to loop, check Valve Developer Wiki on looping sounds