Quick fix would be a short homing sequence after every seed plant. This would take more time but should prevent a crash between the vacuum nozzle and the seed bank.
Still I wonder why there are movement/positioning issues, when everything is monitored by encoders. So I will try to troubleshoot this from my sight (not using encoders myself):
- Motor drives too far and encoder does not recognize that. Moved motor steps are with an offset (max missed steps) equal to the encoder steps.
Could you check the following things to check the encoder functionality:
->Hardware setting like max speed, max missed steps, encoder missed step decay and encoder scaling.
→ While moving or running one of your sequences, keep an eye on those values of the top two lines in the green box (motor coordinates, scaled encoder). If you need to you can enable them in the red box.

I assume that those values should be almost equal, but I don’t know if the encoder output is displayed in the right format (steps or mm?).