It could be that after an event, the pathways to your elements change, such as after a Save. You can try to create your objects in code rather than in the Object Repository, checking for any pathway changes. (Be cautious of Copy and Paste.)
Saying that, part of the challenge in testing is that sometimes web pages evolve with changes in laws, processes, products, whatever. Really, we are doing Regression Testing of how the page used to perform when you created the script. If your pages are changing, well…
Also, do you sometimes rewrite the xpath from what the Web Spy has so that the path starts closer to the specific element or do you just go with the Spy’s choice?
This example is from another Q&A. The below xpath that the Spy had is really unmanageable.
Especially when it could be simplified to: