I've been having the same problem for months now. I have a quite heavy FPGA design (60% LUTs on a spartan 6) and every time I want to add a feature, it breaks all the existing features.
For instance, one of my main feature is a decoding block which reads instructions, decodes the data and answers back if everything passed. If I add a simple new feature like a LED driver (basically only 6 LEDs directly driven by the FPGA), then it breaks the decoding block (some instructions are no more supported) whereas those two blocks aren't related in any case except with the reset and clock trees.
I am using Xilinx ISE 14.7 , I've checked every path and have no timing violation (anyway I'm only working @ 60MHz).
Did that already happen to anyone? Is there a way to detect from where comes this issue?
NB: I already solved this same issue several times by adding more flexibility (delaying some critical signals by one or several clock cycles) and it comes back each time I add something new.