There's nothing special or magic about homing, in terms of the firmware. Homing is just a set of G commands, contained in a file.
There IS something special or magic about homing, in terms of that script. At the start of that script, the machine could be ANYWHERE. Miles from the limit switches, or a hairsbreadth, or even already pressing the limit switches.
Therefore, the sequence of G commands has to "handle" any initial position of the machine. The sample files that are generated have worked for many machine configurations... yet there could be some unique setups that need something different.
So...
Please post your homeall.g. And your config.g. And your config_override.g (if you use it).
Please post a photo of the printer, and a close up of the area of the limit switches, and a close up of the machine post-crash.