This isn't the issue but:
If you have encoders then you should definitely have HOME_USE_INDEX = YES
But that requires a few extra HAL connections between the encoder index-enable, the joint/axis pins and also the PID controller (so that it knows to ignore the step-change on index reset). This will give you 100% accurate homing.
If you look at the HAL, is the index-enable pin wired up? Can you see that toggle during homing (use Halscope[1] to watch it)
Try increasing the f-error limits temporarily, in case this is a genuine PID tuning issue.
Can you attach the HAL file?
[1] Halscope is a soft oscilloscope that will display the state of HAL pins. Its in the "Machine" menu in Axis. If the GUI you have doesn't have it easily accessible, then you can start it at a terminal prompt "halcmd loadusr halscope"