The second short exact sequence is wrong. You should recognize this without knowing where the mistake is: $D_{\mathrm{red}}\leq D$, so $\mathscr{O}_X(D_{\mathrm{red}}) \subseteq  \mathscr{O}_X(D)$ and so the map you have is surjective if and only if $D_{\mathrm{red}}= D$. In fact that map is always injective as you discovered... The underlying point is that $\mathscr Hom$ is left exact, but not right exact.

The right computation would be that the dual of 
$$0 \to \mathscr{O}_X(-D) \to \mathscr{O}_X(-D_{red})\to \mathscr F \to 0.$$
gives 
$$0 \to \mathscr Hom_X(\mathscr F, \mathscr O_X) \to \mathscr{O}_X(D_{\mathrm{red}}) \to \mathscr{O}_X(D) \to \mathscr Ext^1_X(\mathscr F, \mathscr O_X)\to \mathscr Ext^1_X(\mathscr O_X(-D_{\mathrm{red}}), \mathscr O_X).$$

Now $\mathscr F$ is supported on $D$, so since $\mathscr O_X$ is torsion free $\mathscr Hom_X(\mathscr F, \mathscr O_X)=0$ and $\mathscr O_X(-D_{\mathrm{red}})$ is locally free, so $\mathscr Ext^1_X(\mathscr O_X(-D_{\mathrm{red}}), \mathscr O_X)=0$ and hence you have a short exact sequence:
$$0 \to \mathscr{O}_X(D_{\mathrm{red}}) \to \mathscr{O}_X(D) \to \mathscr Ext^1_X(\mathscr F, \mathscr O_X)\to 0.$$