For #1 - 2: I have an OCX that you might be interested in. It's plays MP3s and does all of the ID3 tag reading automagically. I'm sure you'll notice that winamp will stall for a second when you change songs from you frontend. This will avoid that problem and you won't have to spawn Winamp to play MP3s anymore. PM if you want me to send it to you.
For #3, I used a standard MSFlexGrid to store my playlist. When the program starts, it scans a certain directory and fills the first column with the song artist & title, then fills the second column with the full file name. Even neater is that it'll autosort the list. It is much easier to keep track of what song is playing this way.
Not really much help on the way you're currently doing things, but there are easier ways.