proper sizing of the heater is vital.
if you leave it on for a week and it never reaches temperature, it is sized wrong.
if you turn it on and a short time later, it is too hot, it is sized wrong
your heater should need to stay on 1 minute in 20. to 1 minute of 5 minutes.
these numbers are only a starting point.
if your heater can heat in seconds, it is too large
if it takes hours, it is too small, or you need more insulation.
if your heater is sized wrong, then your control will suffer.
also, it sounds like you want to measure air temperature.
as you know, heaters offer heat in 3 ways, conduction, convection and radiation.
if the radiated heat effects your readings, then your control will suffer.
a simple heat shield would help if that is the case.
do some timing tests.
also, the type of heater is important. a resistive heater will get hot and stay hot for some period after.
pulse width modulation will offer longer pulses and allow your heater to get hotter.
if your pulse width were set, then frequency of pulses might stabilize your control.
since we have not seen your code. we do not know the conduction losses of your chamber or the power of your heater, it is hard to offer much of an answer other than try some things and note what works better than other things.
then do more of what works and less of what does not work.
computer control is not magical. it cannot fix mismatched parts.
you would not put a 300 HP motor on a skateboard then expect a computer to make it work.
it is a simple matter to time how long your heater is on. I would target something around 10- 50% as a starting point.
then test and work towards your optimum.