The context used by the answer checker is the one in effect when the MathObject was created, not the one that is active during the
ANS()call. So it doesn't matter which order you make your original complex and implicit plane objects. They keep their contexts and use them during the answer evaluation.
I'm struggling to create a similar problem with ImplicitEquation
The ImplicitEquation object is very finicky, and should be avoided if another method can be used. But it can be made to work if you are careful.