There is a difference between "in ZF" and "in a model of ZF". And that difference is huge.
You can talk about definitions for sets, e.g. $\{x\mid x=\varnothing\land\sf AC\}$ is a definition which ZF proves to be a set, but it is empty if and only if the axiom of choice fails. On the other hand, $\varnothing$ is defined as $\{x\mid x\in x\}$, and ZF proves that it is always empty.
On the other hand, if $x$ and $y$ are two elements of $M$, a model of ZF, then they are equal if and only if they are equal in any larger or smaller model which knows both of them (and it is transitive with respect to $M$'s membership relation). So that much would be true.
Of course, since classes are in fact "formulas" interpreted in some model, it is easy to write a formula which defines a set in some models and a class in others: e.g. $\{x\mid x=x\land\sf AC\}$. Which is a proper class if and only if the axiom of choice holds.