You could impersonate that specific user in your code and then request all publications as them. This should give you the complete list that they're able to access.
Alternatively, you could get every publication and then iterate over them to determine whether the user (or a group that they're a member of) has any rights on that publication.
Please check following for the items showing error:
are any of those published before promoting to 200 shared publication?
any of the items got localized before promoting to 200 shared publication?
are there any dependent item i.e: linked component etc present?
please query to CM db to understand if any duplicate entry created for same items.
please check ...