It looks like I broke something in the last release that causes undo to misbehave sometimes. I'm not sure what's causing the problem and probably won't have time to look at it for a few weeks, unfortunately.

Selections are inherently 8-bit images in Wilbur, so saving a heightmap as an 8-bit BMP surface using Surface>>Save Surface As (or save the texture channel using Texture>>Save Texture As or save the selection using Select>>Save Selection As) will let you reload it as a selection using Select>>Load Selection. Selections are independent of everything else, so loading a selection won't affect any height data. Selections work by providing a mask that the results of operations get applied through (for every non-empty pixel in a selection, the desired operation is computed and the result of that operation is blended with the current surface by treating the selection pixel value as a number from 0 to 1 and doing a linear interpolation between the surface and result [surface=lerp(selection/255,surface,result)]).