Two things I can think of that could be happening:
One:
As you mentioned, there could indeed be a polling-based issue. The built-in Hue integration relies exclusively on polling; CoCoHue does by default but can also use the "experimental" (actually think they're considering it prod-worthy now...) v2 API for instant status updates, which works aside from some odd cases where I think Hubitat's websocket interface has some problems. You can try enabling that if you haven't already.
You can verify or sure by checking the device detail page for the problematic devices before capturing. If "Current Details" (towards the top or top right of the page) isn't right, Rule Machine -- or any app -- won't capture the correct state either. This represents what the hub knows.
Two:
Hubitat works with the so-called hue/saturation (HSB or HSV) color model. Hue does too, but it actually supports a second color mode, xy (or CIE XY). I've noticed the API spitting out xy values more and more lately instead of hue/saturation values. Conversion is difficult, and neither the built-in integration or CoCoHue attempt it at the moment. (There is a third model Hue can use, CT or color temperature. This is fine but can also be represented in xy, which they might be using more since it's capable of representing any color or color temperature.)
If your bulbs are only reporting xy values, symptoms will be similar to the above -- "Current State" values that do not align with reality. Unlike the above, however, a poll will not fix it. (Actually, in some cases, it might, since CoCoHue and built-in polling still uses the v1 API, which normally also gives hue/saturation values, unless you're dealing with third-party bulb that don't report it back under any circumstances...)
To fix:
Seconding the advice above, making the changes from Hubitat would avoid either problem above: the first because even with polling, either CoCoHue or the built-in integration will report new states back immediately after an apparently successful command, even without waiting for polling. (The issue is exclusive to changes made outside the hub.) The second problem is avoided because Hubitat will only send CT or hue/saturation values and will generally avoid the xy problem.
Just a couple guesses and possible solutions; looking at the current states may give you a good idea of what the problem might be and where to start troubleshooting. If all looks good with both of those, there are more things you can still try.