Try this...
module TIG
  module DefinitionReplacer
    def self.run()
      model=Sketchup.active_model
      defns=model.definitions
      model.start_operation("DefinitionReplacer", true)
      counter=0
      defns.to_a.each{|defn|
        name=defn.name
        next if name=~/[#]/
        defns.to_a.each{|d|
          n=d.name
          next unless n=~/[#]/
          next unless d.instances[0]
          next unless n.split("#")[0]==name
          defn.name=name+rand.to_s
          d.name=name
          ins=d.instances
          defn.instances.each{|i|
            i.definition=d
          }
          ins.each{|i|
            i.erase!
          }
          counter+=1
        }
        defns.remove(defn)
      }
      model.commit_operation
      puts "Processed #{counter} definitions"
    end#def
  end #module
end #module
TIG;;DefinitionReplacer.run()
#to use, it assumes you have a number of component definitions [Com1, Com2, etc],
#and you have already imported a similar set of edited ones into the model [Com1#1, Com2#1 etc].
#to run it, paste all of this into the Ruby Console, it should auto-run.
#all instances of the original Com1 become Com1#1, renamed as Com1, 
#any instances of the previous Com1#1 are erased and its definition removed.
#it's one step undo-able