Nevermind - I figured it out myself. You just have to add a few hold() statements:
bar(barData', 'stacked');
xlim([0 900]);
ylim([0 1]);
ylabel('Percent of watershed land area');
ax1 = gca;
set(ax1, 'XColor', 'r', 'YColor', 'r');
hold(ax1, 'all'); % <--------------------------------
ax2 = axes('Position',get(ax1,'Position'),'XAxisLocation','top',...
'YAxisLocation','right','Color','none','XColor','k','YColor','k');
hold(ax2, 'all'); % <--------------------------------
scatter(POLN_PLOT, COST_PLOT, 'filled', 'Parent', ax2);
Hope this helps someone else out and saves them some time!