Find the answer to your question
Why am I not getting all PriceChange events for an item using GetPublicAlerts API call?
The Client Alerts server begins storing alerts for an item only when a GetPublicAlerts call is made for that item. You won't get PriceChange events happened before your first GetPublicAlerts API call for that item. Any subsequent call to GetPublicAlerts would return events that happened after your first GetPublicAlerts call for the specified item.