As requested in the comments, here is a possible solution, that does not overwrite the definition of <=>, but rather defines its own new arrow <=r>.
\documentclass{article}
\usepackage{chemfig}
\catcode\_=11 \definearrow3{<=r>}{% \CF_arrowshiftnodes{#3}% \path[allow upside down](\CF_arrowstartnode)--(\CF_arrowendnode)% node[pos=0,sloped,yshift=1pt](\CF_arrowstartnode u0){}% node[pos=0,sloped,yshift=-1pt](\CF_arrowstartnode d0){}% node[pos=1,sloped,yshift=1pt](\CF_arrowstartnode u1){}% node[pos=1,sloped,yshift=-1pt](\CF_arrowstartnode d1){};% \begingroup \pgfarrowharpoontrue \expandafter\draw\expandafter[\CF_arrowcurrentstyle](\CF_arrowstartnode u0)--(\CF_arrowstartnode u1);% \expandafter\draw\expandafter[\CF_arrowcurrentstyle,red](\CF_arrowstartnode d1)--(\CF_arrowstartnode d0);% \endgroup \CF_arrowdisplaylabel{#1}{0.5}+\CF_arrowstartnode{#2}{0.5}-\CF_arrowendnode% } \catcode_=8
\begin{document}
\schemestart
P \arrow(P--Q){<=r>[$\mathrm{k_{pq}}$]}[,,,] Q
\arrow{<=>[$\mathrm{k_{qs}}$]}[30,,,] S \arrow(S--T){<=>[][$\mathrm{k_{st}}$]}[-30,,,] T
\arrow(@Q--R){<=>[][$\mathrm{k_{qr}}$]}[-30,,,] R
\arrow(@R--@T){<=>[][$\mathrm{k_{rt}}$]}[,,,]
\arrow(@T--U){<=>[][$\mathrm{k_{tu}}$]}[,,,] U
\arrow(@U--V){->[$\mathrm{k_{uv}}$]} V
\schemestop
\end{document}
This results in the following output:

The following code applies the color change to all <=> arrows.
\documentclass{article}
\usepackage{chemfig}
\catcode\_=11 \definearrow3{<=>}{% \CF_arrowshiftnodes{#3}% \path[allow upside down](\CF_arrowstartnode)--(\CF_arrowendnode)% node[pos=0,sloped,yshift=1pt](\CF_arrowstartnode u0){}% node[pos=0,sloped,yshift=-1pt](\CF_arrowstartnode d0){}% node[pos=1,sloped,yshift=1pt](\CF_arrowstartnode u1){}% node[pos=1,sloped,yshift=-1pt](\CF_arrowstartnode d1){};% \begingroup \pgfarrowharpoontrue \expandafter\draw\expandafter[\CF_arrowcurrentstyle](\CF_arrowstartnode u0)--(\CF_arrowstartnode u1);% \expandafter\draw\expandafter[\CF_arrowcurrentstyle,red](\CF_arrowstartnode d1)--(\CF_arrowstartnode d0);% <---------------modified line \endgroup \CF_arrowdisplaylabel{#1}{0.5}+\CF_arrowstartnode{#2}{0.5}-\CF_arrowendnode% } \catcode_=8
\begin{document}
\schemestart
P \arrow(P--Q){<=>[$\mathrm{k_{pq}}$]}[,,,] Q
\arrow{<=>[$\mathrm{k_{qs}}$]}[30,,,] S \arrow(S--T){<=>[][$\mathrm{k_{st}}$]}[-30,,,] T
\arrow(@Q--R){<=>[][$\mathrm{k_{qr}}$]}[-30,,,] R
\arrow(@R--@T){<=>[][$\mathrm{k_{rt}}$]}[,,,]
\arrow(@T--U){<=>[][$\mathrm{k_{tu}}$]}[,,,] U
\arrow(@U--V){->[$\mathrm{k_{uv}}$]} V
\schemestop
\end{document}
I have copied the definition of <=> from chemfig.tex and added ,red in the marked line in the code.
This results in the following output:

A previous version of these MWEs which work with older versions of the chemfig package (prior to v 1.4) can be accessed through the revision history of this post.
! Undefined control sequence. <=r> ... @d1){};\begingroup \pgfarrowharpoontrue \expandafter \draw \expand... l.24 P \arrow(P--Q){<=r>[$\mathrm{k_{pq}}$]}[,,,]
– nxkryptor Dec 12 '17 at 11:01latex,pdflatexandxelatex, as well as with versions1.2dand1.2eofchemfig. – leandriis Dec 17 '17 at 20:27