The best way to know what is happening is:
1. Enable debug using the "nodecay log" command (add slash in chat).
2. Set decay tick, e.g. using "decay.tick 30" in console (not chat). Before doing that, run "decay.tick" to see your current setting - should be 600 by default.
3. Messages should be logged to the oxide log for all decaying items.
4. Set decay tick back to normal using "decay.tick 600"
5. Run "nodecay log" again to disable logging.
6. Send me the relevant logging or at least a portion of it showing the decay operations on blocks, doors/windows, etc.
Ultimately, they should show a before value > 0 and then an after value of 0, as long as some other plugin or server setting is getting in our way.
Again, if there are materials in the cupboard that would protect the building or parts, this will happen without NoDecay being able to intervene.