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