Well, the easiest way is to realise the full adder as basic gates, which all of us know and then replace every gate instance with its mux instantiation. Mux equivalents of basic gates are very basic indeed. I dont think there are books dealing specifically with this. Horowitz might give some insight into such things.
Any Boolean function can be realized using MUXes. Draw truth table of the function. Connect inputs to control signals of MUX, then according to truth table tie the proper input to either Vdd or Gnd.
To simplify the circuit you can move one of controls to input section. For example of half-adder see attachment.
Issues like this were covered in details in some rather old book "Digital design : a pragmatic approach / by Everett L. Johnson, Mohammad A. Karim."
For SUM Mux controlled by A, B
mux input 0 connected to Cin
mux input 1 connected to Cin inverted
mux input 2 connected to Cin inverted
mux input 3 connected to Cin
For CARRY Mux controlled by A, B
mux input 0 connected to '0'
mux input 1 connected to Cin
mux input 2 connected to Cin
mux input 3 connected to '1'