Can you give me any advice on soundproofing between the basement and first floor? My bedroom is directly over the furnace and water heater. I thought adding foam to the basement ceiling might work.
Most sound moves with air through openings, so you need to try and seal any air leaks. Caulk or foam-seal any openings around plumbing, electrical, and heating ducts. Also, put energy gaskets on the electrical outlets.
I am not aware of any foam that will be fire-safe and inexpensive. However, you could try to isolate the furnace using drywall hung with special clips from the framing (the clips dampen sound transmission). If you install drywall, you can also add fiberglass insulation which will absorb sound.
Finally, look at the heating and return ducts. They can be a source of air and sound movement. While you can’t eliminate these ducts, it may be possible to use some type of baffle to make air move around them (where the sound is absorbed).
Finally, consider servicing the furnace. It should not make much noise, and most water heaters are very quiet unless it’s a power-vented unit.