[proofplan]
The inverse of $F(f)$ in $\mathcal D$ is a morphism $F(Y)\to F(X)$. Fullness lets us lift this inverse to a morphism $g:Y\to X$ in $\mathcal C$. The two inverse identities in $\mathcal D$ then become equalities between the $F$-images of $g\circ f$ and $\operatorname{id}_X$, and between the $F$-images of $f\circ g$ and $\operatorname{id}_Y$. Faithfulness reflects these equalities back to $\mathcal C$, proving that $g$ is a two-sided inverse for $f$.
[/proofplan]
[step:Lift the inverse of $F(f)$ along fullness]
Assume that $F(f):F(X)\to F(Y)$ is an isomorphism in $\mathcal D$. Let
$h:F(Y)\to F(X)$ be the inverse morphism to $F(f)$ in $\mathcal D$, so
\begin{align*}
h\circ F(f) &= \operatorname{id}_{F(X)},&
F(f)\circ h &= \operatorname{id}_{F(Y)}.
\end{align*}
Since $F$ is full, the induced map
\begin{align*}
F_{Y,X}:\operatorname{Hom}_{\mathcal C}(Y,X)&\to \operatorname{Hom}_{\mathcal D}(F(Y),F(X))\\
u&\mapsto F(u)
\end{align*}
is surjective. Hence there exists a morphism $g:Y\to X$ in $\mathcal C$ such that $F(g)=h$.
[guided]
We start with the only datum supplied by the hypothesis beyond fullness and faithfulness: $F(f)$ is an isomorphism in $\mathcal D$. By definition, this means there is a morphism
$h:F(Y)\to F(X)$ in $\mathcal D$ satisfying the two inverse identities
\begin{align*}
h\circ F(f) &= \operatorname{id}_{F(X)},&
F(f)\circ h &= \operatorname{id}_{F(Y)}.
\end{align*}
The morphism $h$ lives in $\mathcal D$, but to prove that $f$ is an isomorphism in $\mathcal C$ we need a candidate inverse in $\mathcal C$. This is precisely where fullness is used. Fullness says that for every pair of objects $A,B\in \operatorname{Ob}(\mathcal C)$, the map
\begin{align*}
F_{A,B}:\operatorname{Hom}_{\mathcal C}(A,B)&\to \operatorname{Hom}_{\mathcal D}(F(A),F(B))\\
u&\mapsto F(u)
\end{align*}
is surjective. Applying this with $A=Y$ and $B=X$, the morphism $h\in \operatorname{Hom}_{\mathcal D}(F(Y),F(X))$ has a preimage. Therefore there exists a morphism $g:Y\to X$ in $\mathcal C$ such that $F(g)=h$.
[/guided]
[/step]
[step:Reflect the left inverse identity using faithfulness]
Because $F$ is a functor and $F(g)=h$, we have
\begin{align*}
F(g\circ f)
&= F(g)\circ F(f) \\
&= h\circ F(f) \\
&= \operatorname{id}_{F(X)} \\
&= F(\operatorname{id}_X).
\end{align*}
Since $F$ is faithful, the induced map
\begin{align*}
F_{X,X}:\operatorname{Hom}_{\mathcal C}(X,X)&\to \operatorname{Hom}_{\mathcal D}(F(X),F(X))\\
u&\mapsto F(u)
\end{align*}
is injective. Therefore $g\circ f=\operatorname{id}_X$.
[guided]
We now translate the first inverse identity for $h$ into an inverse identity for $g$. Since $F$ is a functor, it preserves composition and identities. Thus
\begin{align*}
F(g\circ f)
&= F(g)\circ F(f) \\
&= h\circ F(f) \\
&= \operatorname{id}_{F(X)} \\
&= F(\operatorname{id}_X).
\end{align*}
This equality takes place in $\operatorname{Hom}_{\mathcal D}(F(X),F(X))$. To conclude equality before applying $F$, we use faithfulness. Faithfulness says that for every pair of objects $A,B\in \operatorname{Ob}(\mathcal C)$, the map
\begin{align*}
F_{A,B}:\operatorname{Hom}_{\mathcal C}(A,B)&\to \operatorname{Hom}_{\mathcal D}(F(A),F(B))\\
u&\mapsto F(u)
\end{align*}
is injective. Applying this with $A=X$ and $B=X$, the equality
$F(g\circ f)=F(\operatorname{id}_X)$ forces
\begin{align*}
g\circ f=\operatorname{id}_X.
\end{align*}
So $g$ is a left inverse of $f$.
[/guided]
[/step]
[step:Reflect the right inverse identity using faithfulness]
Similarly, using functoriality and $F(g)=h$, we obtain
\begin{align*}
F(f\circ g)
&= F(f)\circ F(g) \\
&= F(f)\circ h \\
&= \operatorname{id}_{F(Y)} \\
&= F(\operatorname{id}_Y).
\end{align*}
Since $F$ is faithful, the induced map
\begin{align*}
F_{Y,Y}:\operatorname{Hom}_{\mathcal C}(Y,Y)&\to \operatorname{Hom}_{\mathcal D}(F(Y),F(Y))\\
u&\mapsto F(u)
\end{align*}
is injective. Therefore $f\circ g=\operatorname{id}_Y$.
[guided]
The second inverse identity is handled in the same structural way, but now in the endomorphism set of $Y$. Functoriality gives
\begin{align*}
F(f\circ g)
&= F(f)\circ F(g) \\
&= F(f)\circ h \\
&= \operatorname{id}_{F(Y)} \\
&= F(\operatorname{id}_Y).
\end{align*}
Again, the equality currently lives only after applying $F$. Faithfulness supplies injectivity of the map
\begin{align*}
F_{Y,Y}:\operatorname{Hom}_{\mathcal C}(Y,Y)&\to \operatorname{Hom}_{\mathcal D}(F(Y),F(Y))\\
u&\mapsto F(u).
\end{align*}
Therefore the equality $F(f\circ g)=F(\operatorname{id}_Y)$ implies
\begin{align*}
f\circ g=\operatorname{id}_Y.
\end{align*}
So $g$ is also a right inverse of $f$.
[/guided]
[/step]
[step:Conclude that $f$ is an isomorphism]
We have constructed a morphism $g:Y\to X$ in $\mathcal C$ such that
\begin{align*}
g\circ f &= \operatorname{id}_X,&
f\circ g &= \operatorname{id}_Y.
\end{align*}
Thus $g$ is a two-sided inverse for $f$, and hence $f:X\to Y$ is an isomorphism in $\mathcal C$.
[/step]