I remember something I have done in a previous application in Visual FoxPro 3 that solved the performance issue problem.
I just remember that when I have one or more child grids, we have to get rid of the ORDER() before doing a LOCATE or a SCAN. This was dropping the system down from 1 second to refresh or to save to 3 to 4 minutes. So, basically, I just have to save the current ORDER() and restore that order at the end.
Yes, it's however true, as Georges Goley was mentioning in his session, that working with SET DELETE ON is not as fast as SET DELETE OFF but it should not represent a factor to decide wether or not we should use it on or off because it's just a matter of a few hundreds of a second.
Problem solved. Party time.