I hope you don't mind my barging in on your thread; I have no short term fix just a longer term solution that you and others may like to consider. Based on Sketchup's webdialog (which allows html/javascripts and Sketchup/Ruby interaction) it is this:
Rather than manually clustering components in Sketchup simply pick plain text names to identify them as shown on this nameset.
A nameset is something like a spreadsheet, except its cells move to display just their association with others. Each name with its address (the white trail that leads back to the project) is a unique identifier which provides access to its record, an unlimited series of CSS type name/value pairs that includes sizes, coordinates, source (real and model), price, timing ... and so on, obtained from many sources.
Rather than putting in and then extracting information from a modelling application, you generate models (or clusters) and analyses from the same unfettered plain text data - e.g. you can use web technology to generate different sizes, or abstract and even buy the ironmongery for a whole project.
Here's some code I used to pick up components and position them.
//javascript
function productsRun(){
entryNo = parentNo
coreIdentityExtractor()
para = new Array(theFile,theX,theY,theZ)
para = para.join(",")
if(sketchup == 1) window.location.href = 'skp;find@'+para }
#Ruby
@dlg.add_action_callback("find") {|d, p|
a= p.split(",")
subDir ="Components/NamesetComponents/"
fileName = a[0]+".skp"
theX = Integer(a[1]).mm
theY = Integer(a[2]).mm
theZ = Integer(a[3]).mm
point = Geom;;Point3d.new theX,theY,theZ
transform = Geom;;Transformation.new point
model = Sketchup.active_model
entities = model.active_entities
path = Sketchup.find_support_file fileName, subDir
definitions = model.definitions
componentdefinition = definitions.load path
instance = entities.add_instance componentdefinition, transform }
Hope you find this helpful/interesting ...
Chris