I don't understand. I may be missing something obvious.
Isn't a range represented by just two fields: the lower number, and the higher number?
Searches for "larger than X" would list entries with the lower field greater than X.
Searches for "smaller than Y" would list entries where the upper field was less than Y.
"Up to 50 feet" would have an undefined or blank lower number. Too bad that would make it difficult to find in search for "greater than 20 feet", but that's the data that was entered.
I wonder if an entry like that is describing tree height from seedling forward, not "mature" heights, It would surprise me if many 40 foot (mature) trees had mature heights of less than one foot.
I know a lot of manual work will be needed to convert existing free-form text, or just to proofread the results of an automated process. But that work could be done by any volunteer with time, not just the experts with experience and specialized knowledge.
(Whimsically) ... 16,000 members and 650,000 plants. That's only 40 plants each.