A slightly different version of the same basic idea as Stefan’s proof may prove more intuitive for some. Let $M$ be the metric space. I too first want to get a maximal well-ordered subchain $\mathcal{A}'$ of $\mathcal{A}$; I’ll comment on that below, but for now assume that I have one. Just as in Stefan’s proof, its maximality ensures that $$\bigcup\mathcal{A}'=\bigcup\mathcal{A}.$$
Now for each $A \in \mathcal{A}'$ let $A^+$ be the successor of $A$ in the well-ordered chain $\mathcal{A}'$, choose a point $x_A \in A^+\setminus A$, and let $X = \{x_A:A \in \mathcal{A}'\}$.) For convenience write $x_A \preceq x_B$ iff $A \subseteq B$; $X$ is well-ordered by $\preceq$.
A separable metric space is hereditarily separable (for instance because it’s second countable), so $X$ has a countable dense subset $D$: every open set in the space that meets $X$ must also meet $D$. If there were some $x_A \in X$ such that $x \prec x_A$ for every $x \in D$, then $M\setminus A$ would be an open set containing $x_A$ and disjoint from $D$. This is impossible, so $D$ must be cofinal (unbounded) in $X$ with respect to $\preceq$. This clearly implies that $$\bigcup\limits_{x_A \in D} A = \bigcup \mathcal{A}',$$ so $\{A \in \mathcal{A}':x_A \in D\}$ is the desired countable subset of $\mathcal{A}$.
Concerning the construction of $\mathcal{A}'$: If you use Zorn’s lemma to get $\mathcal{A}'$, note that you want to order the family of well-ordered subchains of $\mathcal{A}$ by extension, not by simple inclusion: $\mathscr{C} \preceq \mathscr{C}'$ iff $\mathscr{C}$ is an initial segment of $\mathscr{C}'$. For those familiar with ordinals it may be simpler to construct $\mathcal{A}'$ recursively. Suppose that $\alpha$ is an ordinal, and that we’ve chosen $A_\xi \in \mathcal{A}$ for each $\xi < \alpha$ in such a way that $A_\xi \subsetneq A_\eta$ whenever $\xi < \eta < \alpha$. If $$\bigcup\mathcal{A} \setminus \bigcup\limits_{\xi<\alpha}A_\xi \ne \varnothing,$$ there is an $A_\alpha \in \mathcal{A}$ such that $$A_\alpha \setminus \bigcup\limits_{\xi<\alpha}A_\xi \ne \varnothing,$$ and the recursion continues; if not, we’re done, and $\mathcal{A}' = \{A_\xi:\xi<\alpha\}$ is the desired subchain.