(a) Wrong. Try playing the semantics with yourself to see what it says. For any $x$ in $U$, any $y$ connected to $x$ is ...? This is not going to axiomatize the class you want. The answer is not obvious at all, and not simple to prove. Try to find some local property of the desired class and prove that that local property is sufficient to force the graph to be in that class.
Hint 1:
There are only two cases for each node in (the interpretation of) $U$. Either it has all $4$ neighbours in $U$ or it has exactly $2$ neighbours in $U$ that are opposite (in the grid layout of $G$). The first step is to prove that this criterion is in fact equivalent to the desired condition.
Hint 2:
The first half of the above criterion is easy to express in first-order logic. The second half, however, needs more skill. We need to distinguish between opposite and not-opposite. Well, look at the nodes reachable from the neighbours $u,v$ in $1$ step. The reachability graph is of one kind if $u,v$ are opposite and of a different kind of $u,v$ are not-opposite. Just use any formula that captures that difference and you would be done.
Sketch:
For each node $x$, if $U(x)$ then either all neighbours of $x$ satisfy $U$ or exactly two neighbours $u,v$ of $x$ satisfy $U$ such that $u,v$ have only one common neighbour.
(b) Again you need to be precise. "Simply copy" is meaningless; specify exactly how to copy. "Symmetric" is too vague; specify the isomorphism. By the way, the general technique of using an isomorphism that does not preserve a class to prove that the class is not axiomatizable is another common technique besides compactness. You do not need an EF game at all. Simply observe that if $M,N$ are isomorphic structures over a language $L$, then any sentence over $L$ that is satisfied by $M$ must also be satisfied by $N$, by passing through the isomorphism.