The point of using a binary search is specifically to avoid doing an end-to-end search of the entire tree. However, it's only of value if the data in the subordinate hashes are collectively in sorted order. I'm betting they're not.
Off the top of my head, I can't think of a way to shorten the search if those sub-hashes aren't in sorted order. I think you're in for a hash-tree variant of an old-fashioned sequential search.
Which, unfortunately, has you back where you started.