My entity names often disappear so I wouldn't use them to identify stuff in a macro. The entity id will most likely fluctuate between writing the macro and using it so that isn't good either. If using VB I think you have access to and the ability to use the actual entity identifier (looks similar to the 'symbol id' in the Insert manager) but I could be wrong. You can also give an entity a unique 'custom property' (via the info box) and use that to find it (not sure about the finding part right now).
You can also define the entities to be a block, never duplicate it, let the macro find it by it's block name then duplicate and explode with select-when-created on, then use 'getentity' to get their entity id's (which will be the last set of entity numbers depending on the amount of new entities, ie, one will be sys(9), but using the entity id you can delete them later if the macro creates new entities. Also, using sys(9) and knowing the amount of new entities that will be created (when the block is exploded) you can determine the entity id's without having 'select when created' on <<the entity id would not fluctuate during the running of the macro, unless the macro deletes one of them that is not the last>>).
Using basiccad I would use the layer-and/or-color combo to identify stuff (ie, if the entities are unique I would put them on a dedicated layer, if not I would color the required entity one digit different from the RGB value of its compatriots).