Do you mean that when you immediately call the
ewsClient.GetMessageInfo() to retrieve the updated item the dates are wrong?
It is only my guess, but I think you are updating the item programmatically, but you are viewing the update item in a GUI application. Please note that the date and times are stored at the server in UTC, but they are displayed in process/application local time. It means that if you update the item on a computer in time zone -4, but you are viewing the item in an application which is configured to display times in time zone -5 you see different date, because your 2023-01-15 00:00:00 is displayed as 2023-01-14 23:00:00 at the application.
It seems that you are not interested in the time part. In such case, I suggest you to set the
DateTime with 12h UTC like this:
new DateTime(2023, 01, 15, 12, 0, 0, DateTimeKind.Utc);
If my guess is wrong and you are facing different issue, please describe it in more details.