I'm not sure if a hold time fixing algorithm would work on such a long path. Besides that, it's a max path report, right ?
I see in MY designs runs, that buffer chains are converted to delay cells, which are usually faster than the buffer chains they replace. (But since I want the delays, I remove delay cells from the library).
May I ask a question. Just out of curiosity, the interesting part for me is, do you have buffer chains in the post synthesis file, and if so, where are they coming from (the default tool yosys ?) ?