Your question is primarily about extending the proof of (a) $\implies$ (c) to sheaves of modules. To do so, it is helpful to first consider the special case of sheaves on $1$, which are just (up to equivalence of categories) ordinary modules. We consider the category of $R$-modules.
The task for (a) $\implies$ (c) in this case is as follows: we must show that if we have $R$-modules $F, G$ and a monomorphism $\phi : F \to G$ in the category of $R$-modules, then $\phi$ is injective.
To prove this, we note that $R$ itself provides a representation of the forgetful functor $R$-mod $\to Set$. In other words, there is a natural bijection $Hom(R, H) \to H$, where $H$ is an $R$-module. The bijection sends $f \in Hom(R, H)$ to $f(1)$. This means that the forgetful functor preserves monomorphisms, as all representable functors do (this is a good exercise - show that all representable functors preserve all limits, and therefore preserve monomorphisms). Thus, $\phi$ is a monomorphism of sets, hence injective.
Rephrasing in the language of sheaves on $1$, we found that the global sections functor $F \mapsto F(1)$ from sheaves of $R$-modules to sets is representable by $R$. So if we want to generalise to sheaves on $X$, we will want to show that the functors $\mathcal{F} \mapsto \mathcal{F}(U)$ are representable for all $U$.
In the general case, we have a sheaf of rings $\mathcal{R}$, and we wish to represent the functor $\mathcal{F} \mapsto \mathcal{F}(U) : $sheaves of $\mathcal{R}$-modules $\to Set$. It turns out that the relevant representing object is given by $C_U = i(D_U)$, where $i : PSh(X) \to Sh(X)$ is the sheafification functor and $D_U$ is defined by
$D(U)(V) = \begin{cases} R(V) & V \subseteq U \\
0 & otherwise \end{cases}$
You considered $D(U)$ as a possibility in your question (it was option 3), but you didn't come up with the insight that you had to sheafify it.
One can get a natural bijection $Hom_{\text{sheaves of } \mathcal{R} \text{-modules}}(C_U, \mathcal{F}) \cong Hom_{\text{presheaves of } \mathcal{R} \text{-modules}}(D_U, \mathcal{F}) \cong \mathcal{F}(U)$. This is enough to complete the proof, and these are the "indicator sheaves" you are looking for. $\square$
If all you care about is finishing your proof, you can stop reading here. However, you may understandably find this a bit frustrating, since it is not entirely obvious where the magic $C_U$ come from. I will attempt to shed some light on the subject.
Another route to the proof in the case of ordinary modules that monomorphisms are injections goes like this. First, note that given any set $S$, we can explicitly construct $\bigoplus\limits_{s \in S} R$, the free $R$-module on $S$ - the construction is functorial in the obvious way. We can show that this free functor is the left adjoint of the forgetful functor $R$-mod $\to Set$. Therefore, the forgetful functor, being a right adjoint, preserves limits and thus preserves monos. A mono in the category of $R$-modules is therefore a mono in the category of sets.
This construction actually works in any topos with natural numbers object. In particular, it works in the topos of sheaves of sets on a space $X$. Given a sheaf of sets $\mathcal{S}$, we can construct the internal free module $\bigoplus\limits_{s \in \mathcal{S}} \mathcal{R}$. If you are familiar with the internal logic of a topos, this can be done in a fairly straightforward way by carrying out the normal set-theoretic construction within the internal logic (but you must be careful to use a purely constructive approach - defining $\bigoplus\limits_{s \in S} R = \{f \in \prod\limits_{s \in S} R \mid \{s \in S \mid f(s) \neq 0\}$ is finite$\}$ will not work unless every open set in $X$ is also closed). From here, we can show that the internal free module functor is the left adjoint to the forgetful functor which takes a sheaf of modules and outputs its sheaf of sets. A monomorphism in the category of sheaves of modules is therefore a monomorphism in the category of sheaves of sets. We then apply the fact that (a) $\implies$ (c) holds for monomorphisms of sheaves of sets to conclude it also holds for monomorphisms of sheaves of modules.
This approach is very general. It applies not only to modules but also to all kinds of purely equational algebraic structures, and it applies not only to sheaves on a space but also to all sorts of other toposes with NNO (and even $\Pi W$ pretoposes). And it sheds some light on how we came up with $C_U$.
Given any open $U \subseteq X$, we have the yoneda sheaf $y(U) \in Sh(X)$, which is defined by
$y(U)(V) = \begin{cases} 1 & V \subseteq U \\ \emptyset & otherwise \end{cases}$
and has the property that, in the category of sheaves of sets, there is a natural isomorphism $Hom(y(U), \mathcal{F}) \to \mathcal{F}(U)$.
Then it turns out that $C_U$ is the sheaf $\bigoplus\limits_{s \in y(U)} \mathcal{R}$. Thus, $Hom_{\text{sheaves of }\mathcal{R} \text{-modules}}(C_U, \mathcal{F}) \cong Hom_{\text{sheaves of sets}}(y(U), \mathcal{F}) \cong F(U)$. So there was actually no "magic" at all needed to come up with $C_U$, merely some intuition about how the internal direct sum works.
Best Answer
By $im(\phi) = \mathscr G$ I will assume you mean that the canonical map $im(\phi) \longrightarrow \mathscr G$ is an isomorphism. This argument holds in any abelian category.
As you have proven, $\mathscr G/im(\phi) = 0$. This is precisely the cokernel of $\phi$, and the image of a map in an abelian category is defined to be the kernel of its cokernel. We have the following universal property:
In symbols, $\pi \circ \psi = 0$ implies the existence and uniqueness of the dashed map making the diagram commute.
Now, as we said, $im(\phi) = ker(cok(\phi))=ker(\pi)$. So by "the canonical map $im(\phi) \longrightarrow \mathscr G$", I mean $\iota$. We will proceed to show that it is an isomorphism.
Since $\mathscr G/im(\phi)=0$, we necessarily have $\pi = 0$. We will therefore show that $id: \mathscr G \longrightarrow \mathscr G$ satisfies the universal property of $ker(\pi)$. Indeed, let $\psi: \mathscr H \longrightarrow \mathscr G$ satisfy $\pi \circ \psi = 0 \circ \psi$. Thus, we have the commutative diagram:
and certainly, only $\psi$ can fill in for the dashed map and allow the diagram to commute. Hence, this satisfies the same universal property as $ker(\pi)$. Hence, they are isomorphic. This arises by applying the universal property in both directions. In fact, this yields the following commutative diagram.
Hence, we have shown that the canonical map $im(\phi)=ker(\pi)\longrightarrow \mathscr G$ is an isomorphism. This is the closest to equality we can get in an abelian category.