Hello, I tried to add the image to my demo on
http://vm2onj25static.rupostel.com/ with a modification of authorize.net plugin's code in \plugins\vmpayment\authorizenet\authorizenet.php
and it renders normally. Please send a screenshot of the problem - do you actually see the html code on your site without viewing the source? My component does not modify the html code of the payment plugins and therefore I suspect that the problem is in the plugin html code.
I even tried to enable it only for US and it worked over ajax as well. Please specify what browser and OS you are using - maybe some browser don't render innerHtml of elements. If this is the case, you can set the payment not to be limited to a particular country or shopper group and it will render in the main page load. I also recommend to check google chrome javascript console to which OPC sends its json data if the console is found. In a rare case your payment plugin may generate a php notice or an error which breaks the json generation.
What is the payment plugin that you are using?
Best Regards,
Stan