What data container should I be using?

i’d use a struct then make a data table.
it might well be that you need more than 1 struct and data table.
and you might need to reference one from the other. i’d use an fname to reference to the rowname of the other.
i haven’t read deeply your post, so take it with care.
the 3 rules of normalization of databases will greatly help you.