Hi MetalheadOC, sorry I missed your post the first time.
You are doing ALMOST everything right. Unfortunately, what you missed (because the docs could be a lot more clear on this point; I apologize) is that, per the docs, GETDOCKINGPORTS works on a "primary" payload. What I meant by that, is one that uses SERIESBURN, not one that uses a CVEL string, as you have there.
The reason GETDOCKINGPORTS can't work with a CVEL payload is that with CVEL, your desired payload is carried as a mesh and an additional penalty mass, but it doesn't really "exist" until the moment it's jettisoned. Thus, Velcro Rockets can not determine what its docking ports should be, because they simply don't exist yet.
So, instead of
PAYLOAD Transtage-test Velcro/ProtonSTG2 Transtage-test 0 0 17 11715 0.0 1.0
try:
SERIESBURN 0 Transtage-test 0.0 0.0 -3.0 0 1 0
...AND make sure that Transtage-test is created, within the scenario (with its own vessel block) just like any other vessel. Location is not important; Velcro Rockets will move it to where it needs to be.
You can do the same with module2, but now, since you're using it as a Velcro attached stage, you'll need to make sure it has the attach point definitions that Velcro Rockets is looking for:
; === Attachment specs ===
BEGIN_ATTACHMENT
C 0.0 0.0 2.03 0 0 1 0 1 0 VELCRO1
C 0.0 0.54 0 0 0 1 0 -1 0 VELCRO2
P 0.0 0.0 2.03 0 0 1 0 1 0 VELCRO3
P 0.0 0.54 0 0 0 1 0 -1 0 VELCRO4
END_ATTACHMENT
Or something like that. Where 2.03 is the back end of the module, and 0.54 is the radius of the module.
A bit contrived, but it has to be, unfortunately. But at least it should work.