I found the problem, but I obliviously left that chunk of code out of the question.
For a purpose other than the quad tree functionality, I was keeping track of each individual quad in game layers. So the quads were children to not only their parent quad, but also a game layer. When I was deleting the quads, I was clearing them from their parent quads but not from their parent game layer.