I remember there being discussion about this earlier, but can't find it right now. The gist of it was that XMPlay splits the track when the stream lets it know of the track change, which rarely is at the same time on radio stations.
Did find one post which might be helpful for you though:
I've been recording internet radio streams as mp3 with cue sheets. This particular stream usually puts a short gap (dead air) between songs. I take the one big file, fine-tune the break points, and then make it into individual mp3 files.
...
It would be awesome to have XMPlay "write to disk" with cue sheet have an option to limit filesize, limit time, or limit number of cues and then re-start with another filename (could use consecutive numbers or append start time to the filename).
Why don't you try
Streamripper? It can detect silences between tracks, so it splits the tracks and saves them with correct tags and filenames. In addition, it can relay the stream so you can still listen to it with XMPlay.