This is very bad indeed, now. I can pretty much guarantee that adding a #define or something to a .h won't be picked up until SE is restarted.
Do you mean it goes wrong soon after you restart slick - or does it take a while.
One thing you could try is make a copy of the tag file at the time it's going wrong, then restart slick and if it is then working correctly for that symbol, compare the saved tag file with the current tag file.
If it goes wrong quickly after you restart slick then it suggests that it's something specific to your system rather a random overwrite problem or something.
You could also try rebuilding your configuration folder. Save all your settings using options export then import to a new config and see if it takes longer before the problem starts.
Another thing you could try is
1. check whether it's only a specific type of symbol that goes wrong
2. check whether other nearby symbols can still be found
Once it goes wrong does it go wrong for all new symbols in all files?
Are namespaces involved?
Is it C or C++?
If it's readily reproducible, maybe you can use the slick C debugger to locate the code that fails.
Does find symbol or push-tag work?