If that happens, one of the followings applies.
1. You are inserting a buffer at the wrong location.
2. flops/latches have huge setup times and huge hold times and you should talk to whoever designed cells.
3. You are running extremely high clock frequency and adding one buffer can easily kill the setup margin.
#2 is unlikely.
If #1, find a right location to insert a buffer.
if #3, rethink your design.
I had a similar issue on Ethernet interface, where MII, RMII, SMII, SSSMII had different timing requirement. I added muxes to separate the paths for 4 modes and fix the hold in a certain mode wihtout any timing impect in other modes.
BTW, this statemetn is wrong.
Hold violation can be fixed by adding a delay buffer at the Flop