This happens when placing the plugin as the first insert on a Stereo channel with a Mono recording in the track.
The input buffer obtained from GetInput (0) has input->mIOBuffer.mPtrs->mBuffers == input->mIOBuffer.mPtrs->mBuffers! Pointing to the same mData.
The plugin then similarily operates on a buffer where the left and right channels are the same buffer, so one of its channels will override the other..
After copying the left channel, there's the "zeromem (buffer, sizeof(float) * nFrames);" line (not sure why). This cleared the so called left channel but the right channel too because they are the same buffer and we later get zero samples in the right channel.
Looks like AU can give the same pointer for different input channels if they are identical and I guess one shouldn't use these buffers for their in-place processing.