Most likely the server uses its internal date.
Imap.UploadMessage method has several overloads which take UploadMessageInfo parameter, for example: Imap.UploadMessage(String, UploadMessageInfo)
It has an InternalDate property:
UploadMessageInfo uploadInfo = new UploadMessageInfo();
uploadInfo.Flags = new List<Flag> { Flag.Draft, Flag.Flagged };
uploadInfo.SetInternalDate(
new DateTime(2011, 03, 22, 11, 25, 41, DateTimeKind.Utc));
client.UploadMessage(eml, uploadInfo);
Please use that overload and set this property to IMail.Date.