Have you checked for engine codes?

Have you replaced the knock sensor?
An over active knock sensor might be forcing the timing retarded.