Speaking of the empty groups, I don't know where they came from. Not for sure. I'm not sure if all the empty groups were flowed text or not....I suppose it's likely. But regarding the empty groups.
Often when a vector file is opened in Inkscape, which either is a non-SVG vector format, or it's an SVG file created in a different vector editor or program which can support SVG, Inkscape puts a group around every object. It's just how Inkscape handles it. I suspect that other vector editors or programs sometimes do the same thing. Sometimes I wonder if some extensions do that too.
I'm just speculating that an empty text object could be the source of the empty groups. The empty text object (oddly) can be either flowed or regular text. This is how I speculate that it might happen. If you either click on the canvas with the text tool (regular text), or drag a text box (flowed text) a new text object is created. But let's say you change your mind and go do something else, and you never type anything in the text object -- that makes an empty text object. (Status bar will say "Text (0 characters)....") Or even you make 3 tries to get the text in the right place, on the first try. You'll have 2 empty text objects and one where you finally type something.
You can't necessarily see them, so you don't know they're there. (I think I made a feature request a while back, to make them more visible and selectable.) And you can't necessarily select them either. If you can manage to select them, they might or might not be showing a bounding box. In your case, they did not. But I have seen them with a 1 square pixel size bounding box. When I first discovered empty text objects, I had a file with around 25!
Anyway, let's say you take the file and import into some other program, to do some special editing (maybe a math program or latex, to get special characters or something). When you bring it back into Inkscape, Inkscape doesn't recognize it as its own (well ok, that's me anthropomorphizing Inkscape, but I think that's a reasonable analogy) and puts a group around each and every object, and now the empty text object becomes a Group of 0. Let's say you need to go back to that program again. When you come back to Inkscape -- another group. So now the Group of 0 becomes a Group of 1, even though there's nothing in it.
Maybe there's a bug in that routine, somewhere along the line? I don't know.
I think things just get really sticky, and really tricky, and really fast, when you put a different program and/or a file conversion into the mix.