This will sound strange, but, I am sure you are hitting the "OverRun" problem in the CM15. IT is VERY easy to ask it to send more commands than can be sent. The 1 second delay can help, but try pushing it to 2 where needed. The PC interface is so slow (Why, I couldn't say...) that it has much less trouble with this. If you set a simple macro to send "Off" to several modules, and watch the activity monitor, it Will SAY that it sent the command. It actually didn't.
This is a little confusing, but I have tested this and it's true.
I.E. Send via Macro in Interface A1 off, A2 Off. You'll see A1, A2, A off. You will usually get the result of only the A2 and A off. A1 will still be on. PC based Macro will work, Interface macro won't. Add a delay before and after the A1 off and you will get A1, A off, A2, A off and all works.
I'm sure that this is the CM15 processor is a little too fast for the PLC interface inside the CM15. Stay aware of the required delays and all works great.