IMail.Date represents the email's "Date" header. Date header is set by
a sender, not a receiver.
If you want to get the date/time of when the email was received by
your IMAP server, you can use INTERNALDATE.
Imap.GetMessageInfoByUID retrieves several email IMAP parameters,
including INTERNALDATE.
List<MessageInfo> infos = imap.GetMessageInfoByUID(uids);
DateTime? internalDate = infos[0].InternalDate;
InternalDate is assigned by the IMAP server.
You can also examine IMail.Received collection - it contains all "Received" headers parsed. Those are added to each message by every server, that relays the email.