If I make a call to GetMemberMessages for a certain time period, I don't see some of the messages sent by the buyer. However, if I make the same call again after a couple of hours, with the same time period, I get them. Why do I not get them right away in the first call?
Just as an item listing goes through trust and safety filters, so do messages. Depending on a number factors, message delivery can be delayed by a few minutes to a few hours and in some rare cases upto 24 hours. This is not isolated to the API. If a message is delayed, it will affect Messages in MyeBay as well. When the message it delivered, it will be available to the API and Messages at the same time, after the checks are complete.
If you use the date range, set them as below:
StartCreationTime = CurrentTime - 24 hours
EndCreationTime = CurrentTime
This will ensure that you get all your messages, even if they are delayed.