albert - First, a note that I made a logical error in my earlier comments...
Your observation of the pages switching even when you have 100 results selected indicates that they must be very close, as in #20 and #21 (as you've observed), and their rankings are almost a toss-up. If they were further apart, say #20 and #35, it's not likely that they'd switch, as the #35 would be unlikely to pass the #20, which is what it would have to do, to cause them to switch.
My revised thoughts... Because of the way that Google generally clusters results, if the first page was #20 and the second was "naturally" #99, Google's normal clustering effect would draw up the second result to appear immediately after the first... and it would still display as #21.
To find "natural" position, therefore, you need to nibble down on the number of results shown, testing various maximums. Try 100 results first, then maybe 50, and keep going down, say, halfway to the first position, until the second result disappears. This should give you an idea where the second result would be without the clustering. I trust you follow.
Note they there may be a "most-recent-search"
effect, which might influence what you see, so, once you think you've nailed the natural position of the second result, empty your cache and flush cookies and then try the search again with your last-selected number of results... to see if you get more or less the same thing.
One aspect might be the content of my category pages.
I had considered mentioning this, but didn't want to write an essay. I feel that category page content is often overlooked. It can, IMO, be important. The algo of course looks at multiple factors, so a page might do well in a category search even when it has bad content. I feel that content matters.
...my content was and still is copied (in parts, at least) all the time by some small competitors...
I've run out of concise theories on this one. I can say that a client page which had vanished for a single-word search during the Scraper update before MayDay seems to have come back since Penguin. I've seen it in the #2 position (clustered after our first-place home page), or in the middle of the page two, sometimes for the single-word search, sometimes for a two-word search that I'd hoped the page would rank for but somehow it never did.
I've sometimes hesitated to rewrite, or at least to shorten, heavily scraped content, but in general, when pages have needed to be rewritten, they've performed as expected, assuming the link juice was there. So, by all means freshen that up. I'd try a few category pages before I did the whole site. But don't play around with it. Rewrite the page once and live with it for a while.