If you are reading the data with one ReadLine method call and getting lots of data, then you aren't getting '\n' as a character - it's slightly complicated, because when you talk about datastreams, a new line might not be a '\n' alone - t can be two characters "\r\n" instead.
So the first thing to do is to look at exactly what you are getting:
data = serialPort1.ReadLine();
StringBuilder sb = new StringBuilder();
foreach (char c in data)
sb.AppendFormat("{0} : {1}\n", c >= 32 ? c : '*', ((int)c).ToString("X2"));
Console.WriteLine(sb.ToString());
That will tell you exactly what you have, and you should be able to identify a suitable split candidate from that.