Готов поспорить, вы слышите только вторую песню. (и что оба файла имеют одинаковую длину или первый файл короче)
Вы копируете данные второй песни поверх первой. А данные MP3 передаются в потоковом режиме, так что вы можете просто добавлять файлы друг к другу, не беспокоясь о битрейтах (хотя они могут сбиваться), битрейт должен автоматически регулироваться.
Подробно о Заголовки кадров MP3
... попробуйте это ...
Array.Copy(files[0], 0, a, 0, files[0].Length);
Array.Copy(files[1], 0, a, files[0].Length, files[1].Length);
... или еще лучше ...
using (var fs = File.OpenWrite(Path.Combine(path, "3.mp3")))
{
var buffer = File.ReadAllBytes(Path.Combine(path, "1.mp3"));
fs.Write(buffer, 0, buffer.Length);
buffer = File.ReadAllBytes(Path.Combine(path, "2.mp3"));
fs.Write(buffer, 0, buffer.Length);
fs.Flush();
}