It's hard to understand what is happening without seeing the full integration.
For one, unlike client side tracking where you can see most of what is being set in the actual beacon (aside from data set during the processing), the XDM Schema is completely processed... so you would have to dig into your mapping to try to understand if there is a mapping issue between the URL and the Clean URL from your schemas.
Now, in Adobe Analytics (not sure about CJA), pageURL is only set on page views... in fact, Adobe calculates the Page View metric based on hits where the pageName and/or pageUrl is set... even if these are set on actions, they are actively stripped from final results. Which is why if you want the URL or Page Name to be available on your actions, they have to be set into custom dimensions... which sounds like what you are trying to do with your "Page Clean URL" dimension...
I am not yet using the XDM Streams, because with no plans on the horizon to go to CJA, the effort hasn't yet been worth it.... the only feature that that entices me at this time is the ability to have server side cookies, but the juice isn't worth the squeeze...
That said, I am unsure if there your actions are not sending the values on your actions, which might be leading towards some of the issues you are encountering?
My suggestion is first test your scenarios, using your Network panel filtered to see the XDM Stream or use the Adobe Platform Debugger and first ensure that the URL and CleanURL keys are being set properly for all pages and actions.
If you can identify specific clicks that seem to be failing consistently, focus your testing there. Basically, make sure that the data is properly being set and sent to Adobe.
If all of that passes, then you will have to go to the next step which is reviewing all of your mappings...