As my wisdom is not deep enough to answer your problem you could use Data::Dumper (print Dumper($yourValues);) to check every single value you set or store in your arrays and hashes. Maybe it is something else than you would think... good luck.
Thanks,
After much tearing out of hair, I gave the MLDBM module a try instead. The code now appears to be functioning perfectly. It must have been a DBM::Deep bug after all. :-)