If you know what's spawning your clones you could spawn them with different names like "gameObject(clone) 2" and then call Destroy().
Destroy(gameObject.Find("gameObject(clone) 2"));
In general though as long as you can identify one object from the other this shouldn't be a problem.
If you have reference to the object you do not wan't deleted then you could perform a .Equals to avoid deleting it.
// C#
foreach(GameObject go in clones) {
if(!go.Equals(playerObject) {
Destroy(go);
}
}
I'd favor the initial approach though. You should have reference or indenifiers for any object in your scene so you can manage them.