Intermittent SPI bus
If you have a schematic, post it, also any information regarding how your treating the signal lines.  At 1Mhz transmission line effects can come into play, you mentioned you scoped the signal and everything looked fine but did you verify rise/fall times, reflections and ringing?  Are your signal line terminated and impedance controlled?  How long are they?

Other random things it could be:


bug in code, create a minimal program that does nothing but read from the EEPROM to test
Check for proper CS setup and hold times before transfers begin
are you writing to the EEPROM as well? if so are you checking the status register to ensure the write is complete before you attempt a read?
Are you using slew rate control in the MSSP? Either way check that your min/max rise/fall times are within the EEPROMS limits.