I just took a quick look and it seems like you're just storing items in leaves which usually means that you store them more then once in different nodes. Is that right?
While whether this is good or not depends on the usage of the tree, I personally found that solution not so satisfying when dealing with high numbers of items. What I did instead is storing items in the deepest inner node (on path from root to leaf) that totally contains the entity. This would be a clear assignment and its ensured that each item is exactly once in the tree.
Not a very profound comment, but you may want to think about it.