If I was doing this, the npc and the object you are carrying wouldn't be related. NPC go in the npc family and object you are carrying is a different object entirely. i.e. you don't carry the object you are also talking to. If the name is really that important then you can do it the way you described, store npc.name and then set cats.name to that value, but something like name shouldn't be too important I think ? you can even use the object type's name.
For the second part why do those families all use wetness ? or how ?