Raspberry Pi I2C with multiple slaves behaves erratically
I solved the problem. The interference on the I2C lines was probably caused by EMI from the switching power supply and PWM motor controller. 

The I2C frequency is 100kHz and the noise frequency was ~3MHz, so I made a low-pass filter. I put 500pF capacitors on both clock and data, and I put 39Ohm resistors in series directly off of the RPi. (Interestingly, the "official" maximum bus capacitance of I2C is 400pF.) This significantly attenuated the noise. 

I also twisted the 3-ft I2C wires of the accelerometer: clock with GND, and data with 3.3V. 

The errors and spikes in the acceleration readout are totally gone now and it works great.