I missed this the first time around, but the kind of damage/distortion that you're discussing is inevitable because you're resampling your grid of point-sampled data during every conversion. That means that one point in the input image samples to somewhere between zero and many points in the output image. If you save in a lossy image format such as JPEG, then things get even worse because those pixels are further mangled during the processing steps.
The only way I know of to reduce total artifacts (and Naima alluded to in the next post) is to convert your explicit RGBA (or altitude for height fields) with implicit UV coordinate representation that you get in an image into an explicit UVX representation (X is RGBA or altitude in this case). There aren't a lot of tools available to work with lists of explicit points like this because an ideal representation would look a lot like a gaussian splat representation (the final image color is sampled from the UVX point cloud with a size determined by the local sparsity of the desired output area).
One kind of representation that has tooling that _is_ widely available, though, is vector representations. Converting your input into a vector representation gives you something that QGIS can convert between projections without a huge loss in fidelity. There will inevitably be some losses due to numeric precision, but it is usually very much smaller than the losses due to raster grid conversions. If you are willing to keep your data in a UVX (or lat,lon,{data}) representation very early on and only go raster at the very last conversion for tools like Photoshop, then you'll get much better results than trying to keep everything raster all of the time.
Going to a vector format requires that you convert your raster inputs to vector representations. There will be unavoidable losses from the vectorizer, but they are much better than they used to be. However, if you're working from a highly-detailed raster image (e.g. a lighted image of mountain ranges) then you may get lots and lots of tiny polygons that may translate to ugly slivers in different projections. The storage requirements for a vector representation may increase in that case (lots of tiny polygons) as well. The best case for a vector representation is things like continental outlines and relatively few altitude contours (or detail polygons).