Instead of constructing $V^\prime$ so that the edges $(u, v) \in E$ have capacity $1$, let such $(u,v)$ have infinite capacity and the edges $(s,u)$ and $(v,t)$ have capacity $1$.
Then an integral flow (and there must be a maximum flow which is integral) can send at most one unit of flow through each $u\in V_1$ and $v \in V_2$, and one can tell which pairs it matches by whether there is flow going through the edge $(u,v)$ (if there is, this forces the flow through $(s,u)$ and $(v,t)$ as well as the flow through $(u,v)$ to be 1). The total flow $x$ is the number of such matched pairs. This is slightly less obvious than in your original construction, but still true. This gives you (1).
On the other hand, any finite weight cut will contain only edges of the form $(s,u)$ and $(v,t)$ (which each have weight $1$). Check (for (2) and (3)) that a vertex cover corresponds a cut which contains $(s,u)$ for every $u \in V_1$ in the vertex cover, and $(v,t)$ for every $v \in V_2$ in the vertex cover.
After this you are done by the min-cut max-flow theorem.
$M$ is a maximal matching, and we’re assuming that $ab\notin M$. There must be either an edge in $M$ incident at $a$ or an edge in $M$ incident at $b$, because if not, we could add the edge $ab$ to $M$ to get a strictly bigger matching. Thus, either $a$ is matched (but not with $b$), and there is a $b'\ne b$ such that $ab'\in M$; or $a$ is not matched, and there is an $a'\ne a$ such that $a'b\in M$.
Suppose that $a$ is not matched, so that there is an $a'\ne a$ such that $a'b\in M$. Then $ab$ is an alternating path: it starts in $A$ at the unmatched vertex $a$, its first edge is not in $M$, and we don’t have to worry about later edges because there aren’t any. The edge $a'b\in M$ has one of its ends in $U$: since the end $b$ is the end of an alternating path, it’s the end of $a'b$ that we put into $U$. Thus, $b\in U$, and we’re done: $U$ covers the edge $ab$.
Thus, we may assume that there is a $b'\ne b$ such that $ab'\in M$. If $a\in U$, we’re done: once again $U$ covers the edge $ab$. Assume, then, that $a\notin U$. Then $b'$ must have been the end of $ab'$ chosen to go into $U$, so there must be an alternating path $P$ ending at $b'$. If vertex $b$ is in the path $P$, we can cut $P$ short at $b$ to get an alternating path $P'$ (that Diestel denotes by $Pb$) ending at $b$. If $b$ is not in $P$, we can extend $P$ by adding the edges $b'a$ and $ab$ to get again an alternating path $P'$ (that Diestel denotes by $Pb'a'b$) ending at $b$. Thus, in all cases there is an alternating path ending at $b$. If $b$ were unmatched by $M$, $P'$ would be an augmenting path, and we could extend $M$ to a larger matching. $M$, however, is maximal, so this is impossible, and $P'$ therefore cannot be an augmenting path. This in turn means that $b$ cannot be unmatched: it must be one end of some edge $e$ in $M$. And since it’s also an end of an alternating path, it must have been the end of $e$ that was put into $U$. Thus, $b\in U$, and yet again we find that $U$ covers the edge $ab$.
And $ab$ was arbitrary, so every edge of the graph has at least one of its ends in $U$, meaning that $U$ is a vertex cover of the edges. Finally, we put one vertex into $U$ for each edge of $M$, so $|U|=|M|$, as desired.
Best Answer
Consider the example below given by Diestel. Your algorithm would conceivably choose the top right vertex and then the left vertices of the rest of the matching edges. But this is not a vertex cover: there is an edge going between the left and right vertices of the first and second matching edges, respectively, that is not covered.
Of course, in this case if we had been more lucky and chose all of the vertices from the right side, we would have gotten a vertex cover. But it is not difficult (and maybe instructive) to extend this to an example where neither choice gives you a vertex cover. (Hint: you only have to add one unmatched vertex of degree one to this example.)