Copy

node = hou.pwd()

geo = node.geometry()

geo2 = node.inputs()[1].geometry()

uniqueName = geo2.findPointAttrib("name").strings()

cpGeoList = {}

for i in uniqueName:

cpGeo = hou.Geometry()

cpGeo.merge(geo)

prims = [p for p in cpGeo.prims() if p.attribValue("name") != i]

cpGeo.deletePrims(prims)

cpGeoList[i] = cpGeo

tempGeo = hou.Geometry()

for i in geo2.points():

cpName = i.attribValue("name")

tempGeo.merge( cpGeoList[cpName] )

geo.deletePrims(geo.prims())

geo.merge(tempGeo)