Thank you for your inquiry.
I think the problem is due to the reason that you are overwriting the indexed stream with same contents. Below is source code for your reference. Please give it a try with latest version of Aspose.Email for .NET v1.3.0 and let us know of your results.
var message = Aspose.Email.Mail.MailMessage.Load(“C:\temp\message.msg”);
int counter = 0;
string attachmentName = new string[message.Attachments.Count];
string contentType = new string[message.Attachments.Count];
Stream stream = new Stream[message.Attachments.Count];
foreach (Attachment attachment in message.Attachments)
attachmentName[counter] = attachment.Name;
contentType[counter] = attachment.ContentType.ToString();
stream[counter] = attachment.ContentStream;