Of course it should work with every OPC module, but unfortunately it's not that simple. It's because payment modules are (historically) based on hookPayment which directly returns html code. This html code is supposed to contain one payment button to submit the standard checkout form. And it's very hard to reuse this html code inside different flow, like in OPC. For example, while in standard flow click on payment button submits/completes the checkout, in OPC it usually only selects the payment method.
Most OPC modules works because of some black magic. They usually render the original html code inside invisible section of the page, and in the same time they parse the html and scrape information (payment logo, text, etc). They then render their own html content using these information. When you click on final submit button, they must also perform virtual click on the (hidden) payment button.
This is very complicated process, and it doesn't work in 100% of the cases. In this particular case, @haylau uses OPC module that doesn't do this job well enough.