This is fairly well described in the FAQ under My found count isn't correct.
This can be due to many reasons. If you have deleted logs, Project-GC might not have detected it yet. The logs you have created the last two days might not be detected yet either. But this should normally not be a consistent issue. Project-GC is trying its best to sync up every profile, and users of Project-GC gets a higher priority and normally gets a sync about daily. But there is at least one case that can not be solved via the Geocaching LIVE API. Geocaching.com is showing finds a bit inconsistently sometimes. If your profile on Geocaching.com lists 100 finds but you only see 99 when you list all your finds there, then Project-GC will just show the 99. The reason behind this is that one of your logged caches has been retracted. It has been removed after being published. Not just archived, but a reviewer has been taking the cache back for some reason. These can not be seen by Project-GC, this is a design from Groundspeak and not something we can do anything about as it works today. As mentioned, these aren't listed anywhere on Geocaching.com either.
Added to this, there is also the Lab caches, which aren't supposed to show up in statistics. They do not exist in the API and Project-GC does not handle them at all.
Regarding the updates of Profile States, it's not related. Profile Stats is rendered either once per week or on a daily basis depending on the membership. Regardless it's rendered on the data that is known to Project-GC. Some changes are hard for Project-GC to catch, this is due to how the API at Groundspeak is designed.
But there are some methods used to try to keep the data for members more accurate. But in this case, it doesn't help. (it would have helped if the account giving the caches away was a member though). This is not really in Project-GC's power to fix, we are limited to how the API works.