Make sure you have put parentheses around the date in the square-bracketed arguments of your \bibitems:
If you do not delimit the date with parentheses in every \bibitem, natbib won't handle the cross-references properly and will put a number in place of the year or the whole citation depending on whether you used \citet or \citep. Even just one missing set of parentheses will cause the cross-referencing to fail, so check the argument of every single \bibitem in the reference list if you are having this problem.
Once you have inserted the missing parentheses, delete the
.aux file and LaTeX as usual.