My issue was actually that the content restrictions were being inherited from the parent page. This was for custom post type but I’m not sure if that was anything to do with it.
It wasn’t anything to do with caching.
I have this exact same issue, I’m using Cloudflare and wonder if it is something to do with that. I’ve purged the cache and tried disabling the CDN functionality but I’m still not able to access a public page when not logged into the CMS.