I had the same issues like Stefan, however with "gather".
Since I found the answer to his issue and also could reproduce the "wrong" referencing, I would like to share my findings with you.
It depends where you put the \label in your equation environment.
Working example: In this example, you get the correct label for the one label that you assign to the equations.
\begin{gather}
\arraycolsep=3pt
\medmuskip = 1mu
{^{O}{\dot{\psi}(t)}} = \int^{t}_{0} \frac{{^{O}\V{\tau}_{G,z}}}{{^{B}{J}_{zz}}} dt + {^{O}{\dot{\psi}(t=0)}}, \nonumber \\
{^{O}{\psi(t)}} = \int^{t}_{0} (\int^{t}_{0} \frac{{^{O}\V{\tau}_{G,z}}}{{^{B}{J}_{zz}}} dt + {^{O}{\dot{\psi}(t=0)}}) dt \nonumber \\
\label{calcAngularPosVel} + {^{O}{\psi}(t=0)}, \\
{^{O}{\dot{\psi}(t)}} = {^{B}{\dot{\psi}(t)}}, {^{O}{\psi(t)}} = {^{B}{\psi(t)}}. \nonumber
\end{gather}
\ref{calcAngularPosVel}
Example with "wrong" reference: In this example, you would get the labeling of the section, not for the equation, since the label tries to reference the last line of all equations provided in the gather environment. Hovewer, the last equation line does not provide a label, since the \nonumber command suppresses this. Thus, latex cannot reference to this equation.
\begin{gather}
\arraycolsep=3pt
\medmuskip = 1mu
{^{O}{\dot{\psi}(t)}} = \int^{t}_{0} \frac{{^{O}\V{\tau}_{G,z}}}{{^{B}{J}_{zz}}} dt + {^{O}{\dot{\psi}(t=0)}}, \nonumber \\
{^{O}{\psi(t)}} = \int^{t}_{0} (\int^{t}_{0} \frac{{^{O}\V{\tau}_{G,z}}}{{^{B}{J}_{zz}}} dt + {^{O}{\dot{\psi}(t=0)}}) dt \nonumber \\
+ {^{O}{\psi}(t=0)}, \\
{^{O}{\dot{\psi}(t)}} = {^{B}{\dot{\psi}(t)}}, {^{O}{\psi(t)}} = {^{B}{\psi(t)}}. \nonumber
\label{calcAngularPosVel}
\end{gather}
\ref{calcAngularPosVel}
So it depends where you put the \label command if you want to reference the entire system of equations with only one reference.
Hope this is of help for anyone.
\refeqtry using\refor\eqrefinstead. – Seamus Jan 6 '11 at 12:37