I suspect that since you did not say the battery voltage when the PWM circuit was bypassed and the battery was powering the heater directly, then the batteries, battery holder, switches and wiring are heating and throwing away most of the voltage charge.
Measure the voltage at the heater when...