Make sure end users have any privilege needed to read your CI Types and scan PURG for any privilege related to the service catalog like system/shopping cart and there are a fair number in Configuration management/Non process that enable access to read the catalogue Hierarchy, bundles etc. Configuration Components also has various Service Catalogue privs.
Anything in the event view when your end user access the catalogue?
Obscure left field thought. If you have CI Partitioning enabled, you need to run the TPS Tools Populate CIType references and make sure the CIs are available to end users with partitioning.
Read Access on AssetManagement\Service (in fact I did read on all) seemed to fix it.
Result. Shame the OOTB doesn't have this as standard