This is some interesting stuff!
I notice that in the PDF output, if a tiddler listed in "The record set" table doesn't have some fields (or the field value is blank, or two fields have exactly the same value), that row of the table omits the corresponding cell, rather than showing a blank placeholder cell (or a repeated value if two fields have matching values). The result is that the cells for that tiddler don't align with the corresponding field name headings.
Example 1:
"Interactive Git
Documentation by Devin
Weaver" has a blank "type" field.
The result is that the "url" field value is displayed under the "type" column heading
Example 2:
"Simple Zork-like Game by Jed Carty" has the same timestamp for "created" and "modified" (20141118143636664).
The result is that the "modified" field value is omitted from the table, and the "text" field value is displayed under the "tags" column heading.
Since I can't look at your code to see what you are doing, I can only guess at some possible workarounds for these issues.
I assume you are using some filter syntax to iterate over the fields of a tiddler and using something like "get<fieldname>" to retrieve the values that are shown in the table cells. If this is the case, you might try using something like "get<fieldname>else[]", which would ensure that empty/missing fields are converted to blank text rather than being omitted. For the duplicate value problem, you might try preceding the relevant filter run syntax with "=" to preserve duplicate values in the results.
Hope this helps,
-e