I created a GUIDE-based GUI containing the two functions you mentioned and was able to reproduce the problem (in the future, you should create a simple example demo to make it easy for people to reproduce and diagnose the problem).
When objects are plotted to the axes, the ButtonDownFcn is cleared which is why the ButtonDownFcn worked before plotting but didn't work after plotting.
To fix it, hold the axes before plotting.
% --- Executes during object creation, after setting all properties.
function axes1_CreateFcn(hObject, eventdata, handles)
% hObject handle to axes1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
hold(hObject, 'on') % <-------- ADD THIS --------------------
plot(hObject, [0 20],[50 1500]);
Another solution would be to programmatically assign the ButtonDownFcn after the plotting.