I have encountered a simlar situation with my hosting provider who terminates the SSL connection at a load balancer/reverse proxy. Thus the inbound WordPress connection is always HTTP and never HTTPS. With default configurations, I was getting errors in HTTPS pages simply because W3TC was unable to recognise that it should issue URLS for the content that started https:// rather than http://
One solution would be to always insist on HTTPS, but that does seem wasteful. Another would be to extend the admin GUI to allow users to configure $_SERVER keys/values which distinguish HTTP and HTTPS.
In my particular case, the reverse proxy added
HTTP_X_FORWARDED_SSL 1
so I was able to simply add this test into the w3_is_https() function to make sure that the content URLs matched the actual end-user connection type