I’m not sure why this might be happening for certain, but I have a couple of speculative ideas as to what may be going on.
First of all, Twitter is an eventually-consistent system, and depending on which backend instance you hit on any call, there’s a chance that data may not have synced between all our data sources, so some data may not immediately be present in a timeline. For high volume accounts with lots of followers I suspect that could be it.
Second option would be potentially if the Tweets are promoted for some reason, they may be geotargeted or not visible to followers etc.
Third option might be the account’s quality filtering settings having an impact on what the user actually sees in the mentions timeline, vs what is in the search API.
Can you provide concrete Tweet IDs that are expected to be in the timeline response, but are not?
Most solutions that want to do this kind of thing in a more robust way would use our commercial PowerTrack capability rather than relying on the user mentions timeline.