(Original comment prepended to the answer for the last comment):
The CData is of your original image. If you add a second image in addition to your original and set the AlphaData on that instead then you will have both images and the second one will have tramsparency defined by the AlphaData while the original will be full opaque underneath it - i.e. visible anywhere the AlphaData of the second image is < 1 (to varying degrees, and clearly where AlphaData is 0)
Make sure you use explicit axes handles when using all plotting-based instructions also. Most plotting functions (and things like hold, xlim, axis, etc) have a syntax that allows you to pass in an axes handle as the first argument and then the remaining arguments are exactly as you would use them otherwise.
This ensure that your instructions are being applied to the axes you expect.
applies hold on status to the current axes. Is the current axes actually the one you think it is at that moment? Don't take that risk. Give it an explicit instruction:
where hAxes is your axes handle, e.g. handles.axes1 is the default handle for the first axes in GUIDE, but this will be whatever you set its tag to.
I didn't notice until I scrolled just now actually that you are already doing this for plotting the original image, which is good, so just do it with the hold instruction too and you should be fine.