Im doing this at the moment. My suggestion would be, instead of taking the fish out of the tank just leave them in.
You can change the substrate in sections by using dividers, and do say a 25% substrate change every 3-4 days. Your water needn't go extremely cloudy if you do it carefully.
Heres what to do. Syphon the all gravel in the section you wish to replace. This will remove most of the poo

Once your happy that its clean scoop out the old (Cleaned) gravel (I used a dustpan). Now wash enough sand for the gap. Do his really well! to prevent cloudyness. Insert your divider next to the old gravel and carefully scoop the new sand in. Job Done!. With minimal clouds. Oh and top tank up with clean/treated water.
This what Im doing and the fish don't seem to mind, just nosy