The parser processes the Received header correctly, but the name-based indexer of MimeHeaderCollection class only returns the first header value (this is documented behavior).
To access the complete list of Received headers, simply iterate through the MimeHeaderCollection. Like this, for example:
MailMessage message = new MailMessage();
...
foreach (MimeHeader header in message.Headers)
{
if (string.Equals(header.Name, "Received", StringComparison.OrdinalIgnoreCase))
{
Display(header.Value);
}
}