I have one guess, but I haven't check the code. Does it happen between different worlds (treating nether as world), or in one world? Mobs won't despawn in a world if there are no players there.I had this problem on my server as well. It has to do with, at least in my experience, the chicken chunk loaders.
Whenever I destroyed mine and replaced it an hour or so later mobs would start spawning. Mobs would also start spawning if I restarted the server, so you could try that too.
My guess is it has something to do with either chicken chunk loaders, or just chunk loaders in general