Okay, so my team desperately needed a fix for this, so we spent the weekend getting intimate with the C3 SCML addon.
We figured out that what was actually happening was that only the last construct object in the instance array was being set, always when using "setC2toSpriterObject"
It took us a bit to figure out that the .c3addon is just a renamed .zip file (lol) -- and once we had the source code, we dug deep into the "setC2toSpriterObject" function.
Going through the massive run time file we eventually figured out that on line "2160" the "c2Obj" variable was being set to "getFirstPicked()" -- we changed this to "getPairedInstance(this)" to get the paired instance of the c2 object, and everything magically snapped into place the way it should be.
I don't know if this is the absolute most correct solution, or if I am blatantly missing something else once more, but for now our project is back on track, and the team is happy. I look forward to any input the Spriter devs might have on this.
For anyone searching for this problem on Google or the forums, I've attached a fixed scml.c3addon -- I make no guarantees, but it works for us so far.
You can verify this for yourself using the test .c3p file from the previous post.
scml3.c3addon