Where possible avoid "extended find". We had lots of cases of that and its been resolved since we've static mapped everything especially the top-level objects. With "extended find" other objects may be a better match than the one you have mapped and TestComplete will use that instead.
We also disabled the self healing option as TC as it was too easy to select the wrong elements to make its fixes.
Static mapping makes fixing much easier when things do break.
We only use extended find for very low level objects in the tree and where there is no possibility of another similar object being identified by mistake. In these case we have used parent and "required children" to improve the identification.
Another option is the IntelligentQuality module and use OCR actions and checkpoints. We have a suite that uses this.