Hi,
Thanks for this detailed report and screenshot.
When I open the PDF in evince (on linux), the page with duplicate letters looks like this:
I haven't checked the internals of the PDF, but is it possible that some of the letters are being written to the page twice?
lib/pdf/reader/page_layout.rb is responsible for laying all the text out on a page and it currently has no logic for skipping duplicate text written to roughly the same position. I'll happily accept a patch if you're able to come with something.
As a starting point, try this debugging code at the top of the initialize method:
runs.select { |run|
run.text == "A"
}.sort.each { |run|
puts run.inspect
}