I solved it by using the properties of axesm, Origin,FLatLimit, FLonLimit instead of MapLatLimit and MapLonLimit
There is another way to fix this. Turns out that when one uses contourm(), sometimes the Cartesian axes limits change. I am assuming this is a bug. I found a solution to be to store the Cartesian limits before the contourm() and replace the buggy limits with it, after executing the function like this:
ax = gca; xlim = ax.XLim; ylim = ax.YLim;
ax.XLim = xlim; ax.YLim = ylim;
Sign in to answer this question.