I had this same exact problem - My workaround was just to create a List<MailItem>
and loop through that. Make sure the emails aren't in subfolders though, otherwise they won't be found.
Outlook.Application app = new Outlook.Application();
Outlook.NameSpace outlookNs = app.GetNamespace("MAPI");
Outlook.MAPIFolder emailFolder = outlookNs.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
List<MailItem> ReceivedEmail = new List<MailItem>();
foreach (Outlook.MailItem mail in emailFolder.Items)
ReceivedEmail.Add(mail);
foreach (MailItem mail in ReceivedEmail)
{
//do stuff
}