There was a typo in my code:
Actually, CC doesn't work with _either_ SerialElement or ParallelElement, but does with ProxyElement.
Not good news.
I've been working on a work-around using solely ProxyElement without the ParallelElement or SerialElement...
It seems that any modification to the flow at all will break captions. If I use the ProxyElement as a wrapper and set .proxiedElement to the content element once I have checked the ad tags, then captions are broken for that, too.
It seems that the proxy will only work if it is setup with the content element as proxied child on startup... which is sub-ideal.