The first thing I would do is disable all third party resources. If possible, switch to a default theme. (it should not matter, but just to eliminate it as a possibility).
Go back into CF. Clear cache. Wait 30 seconds. Log out of your site as a user.... (or use a different browser that does not have a session). Load the page a few times and check the status.
If it does not fix it, you most likely have something overriding the headers at the server level. (Again... check your htaccess to make sure it's exactly IPB's default. Don't have extra stuff added there.)
I just literally setup a vanilla IPB instance on a fresh server on AWS. With the basic setup provided above, the caching worked correctly for both guest and logged in users for base pages.