It’s the blocks.
Details: tried configuring list columns and taking out “fields” attrib but it makes no difference. (Which is good because it’ll be useful to call pdb_list more than once with different fields). Then tried deactivating all plugins including Participants Database and tho of course the shortcode did not instantiate it still repeated twice on the page. So it’s not a Participants Database error at all, many apologies!
Switching from Classic Editor to the Gutenberg Blocks Editor revealed two blocks containing the shortcode, deleting the dupe produces the correct list. This make it a discrepancy between the Classic Editor and the Blocks Editor, which maybe I should log, unless it’s pretty well known (?). Up to now have used the Classic Editor – like many oldtimers, I dislike the blocks editor – may have to revisit that.
Anyway, Participants Database is a great plugin! Wasn’t sure we should try this project in WordPress at all, and wouldn’t have done so without something like PD, and so far it’s done great creating all our records correctly and retrieving them. Thanks for your help.