I'm not that familiar with IDWT/DWT either.
But from what I know IDWT - DWT is not a strictly loss-less conversion.
Here's a somewhat approachable reference:
http://polyvalens.pagesperso-orange.fr/clemens/wavelets/wavelets.html[
^]
For your purposes the key point is that the DWT is essentially a band-pass filter. It throws away frequency information that is above or below certain limits. If all your data is within the frequency band, then the conversion is reasonablly reversible (within the limits of sampling and rounding). Any data outside that frequency band is lost.
It's pretty obvious if you made a huge change to one pixel in the original image you'd have introduced a very high frequency component which would get thrown away. (Much as happens when you save a jpeg image.)
Similarly when you are making a huge change in the wavelet domain, you've just added a huge amount of energy at a single wavelet frequency and when you transform that back into the space domain, that energy probably gets lost off the edges of your image, so that not all your information is retained.
I guess theoretically you could increase the size (number of wavelets) of the DWT / IDWT so that the bandwidth of your transform is large enough to handle the magnitude of changes you are making, but I don't have any good intuition about how big it would have to be.