Very possible. Was aiming to avoid this path and have just a single type that holds both the category and base item. Makes data management considerably easier . . .
I still have to believe there is a way to do this without creating two data types to hold category and base item.
Depends on what you are trying to display. You started by wanting the unique categories. A repeating group of type text, using unique elements will get you that. If you then want to display all the names for each category (like under a parent header) you can have a second repeating group with a constraint based on the category for the current cell.