I'm not very experienced in redstone, so anyone knows a better way can correct me. I will give a your answers for each question.
To test for hoppers, I remember you must input the command /testforblock <x> <y> <z> hopper {Items:[{Count:1,slot:1,id:stick},{Count:1,slot:2,id:stick},{Count:1,slot:3,id:stick},{slot:4,id:stick}]}
The above command is for the sticks, the count specifies number of sticks required, to test for planks, change the id, stick, to the id, planks.You may want to specify which type of wooden planks, if not, default to oak.
To remove health, why not trap the Wither first, and test for the transfer of items in the hopper? When the items in the hopper is left with a certain value, use a redstone comparator to test for the success output of the above command, that activates a command block that places PrimedTnt on the Wither, deceasing the health.
To add health back to the Wither, use the same command above, but make sure the count is larger than the above. Then use a redstone comparator acivating another chain of command blocks that summons splash potions of harming to heal it.