You can have multiple tokens in a hash table's data if you want. I think that's what you're talking about in your previous example. Then, you'd just use $gettok or /tokenize to help you access the correct token.
As for your first idea, you shouldn't need $hfind unless you're searching the DATA for information and you don't know the nick. As long as you know the nick, you can easily use $hget to get the data and it's faster.
For the second idea, I would not suggest editing the files manually unless you're sure you are formatting them properly or else the /hload may fail and you could have problems.
For the third idea, it won't be a problem having multiple tables. I'm running almost 200 tables right now at all times. You just need to keep track of them. You *can* get it all into a single table, but that will require a little more work and you'd probably want to have your ITEM names include what would normally be the table name.