What does it take for a client to reject an incoming block from the network? If we know this we can work backwards and find out why he wants to reject every new block. There must be a transaction in the main chain 1699 or prior that his client disagrees with.
He would have to disagree with 1699, but that is an empty block. There's no reason he should disagree with that one.
My theory:
His antivirus cuts off files after a certain size. This caused his block database to be limited at 1698 (and maybe he rejects blocks after that due to corruption). However, his block
index was not cut off (because it's shorter), so he ignores incoming blocks as "already have", even though he doesn't really have them. Every time he generates a block, it is quickly destroyed by the antivirus, but its confirmations are preserved by the block index for some reason.