My first attempt, yet I managed to concoct some kind of working script that solves this, apparently, a duplication bug in 6421 control.
function cloneLayers(num_of_copies, keep_selfref, move_after) {
app.beginUndoGroup("Clone Selected Layer(s)") ;
var comp = app.project.activeItem ;
if (comp && comp instanceof CompItem) {
var selection = comp.selectedLayers ;
if ( selection.length > 0 ) {
for (var i = 0; i < selection.length; i++ ) {
var selectedLayer = selection[i] ;
var cloningData = [] ;
var effectGroup = selectedLayer.property("ADBE Effect Parade") ;
for (var j = 1; j <= effectGroup.numProperties; j++) {
var effect = effectGroup.property(j) ;
for (var k = 1; k <= effect.numProperties; k++) {
var property = effect.property(k) ;
if (property.propertyValueType == 6421 && selectedLayer.index == property.value) {
cloningData.push([j, k]) ;
}
}
}
// Cloning
for(var n = 0; n < num_of_copies; n++) {
var clone = selectedLayer.duplicate() ;
move_after ? clone.moveAfter(selectedLayer) : void(0);
if (keep_selfref) {
for (var m = 0; m < cloningData.length; m++) {
var cd = cloningData[m] ;
clone.property("ADBE Effect Parade").property(cd[0]).property(cd[1]).setValue(clone.index) ;
}
}
}
}
} else {
alert("No selected layer.");
}
} else {
alert("No active composition.");
}
app.endUndoGroup() ;
}