Faresti meglio ad utilizzare \schemestart e \schemestop. Per potere andare a capo devi prima chiudere la formula con uno \schemestop e poi mettere \par. Altrimenti non lo accetta. Di seguito ho riscritto la tua reazione utilizzando \schemestart e \schemestop. Per l’allineamento ti rimando al manuale del pacchetto e al comando \arrow, se mai non ti piacesse quello automatico.
`
\documentclass{article}
\usepackage[italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{chemfig}
\usepackage[version=3]{mhchem}
\setcrambond{3pt}{1pt}{1pt}
\begin{document}
\begin{center}
\schemestart
ATP
\+
\chemfig{*6(-=*5(-N=(-*5(=N-(<:(=[6]O)-[9]OH)--S-))-S-)-=-(-[3]OH)=)} \+
\ce{O_2} \arrow
\chemfig{H-[9]*6(=(-H)-*5(-N=(-*5(=N-(=O)-(-H_2)-S-))-S-)=-(-H)=(-OH)-)}
\+
AMP
\chemsign{+}
PPi
\+
\ce{CO2}
\+
Luce
\schemestop\\
Reazione catalizzata dell'enzima luciferasi
\end{center}
\end{document}
`
Spero ti sia utile. :D
PS: Ti ho aggiunto il comando \setcrambond{}{}{} che permette di personalizzare il legame uscente dal piano, perché quello di default non mi aggrada. Per maggiori info consulta il manuale del pacchetto se vuoi personalizzarlo.