Since raid5 calculates parity it should be able to catch silent data corruption on one disk.
Nope. One could totally obliterate a sector with random data, and a RAID5 would not bat an eyelash. RAID1 has the same problem.
In general, RAID does not provide real-time data integrity checking. What it does provide is fault-tolerance in the face of one (or more, with some RAID levels) drive failures. Those are two very different things.
If you are looking for something to catch file corruption, you need filesystem support. RAID does not do it. At least, not on its own.
To answer your specific questions:
RAID1 is implemented simply as two (or more) identical mirrors. When the mirrors do not agree on the contents of a sector, then corruption has occurred. The thing is, the RAID system is not often in a position to be aware of this, since it does not normally read all the mirrors when it is asked to retrieve a given sector. For efficiency, it will likely just schedule one disk to read it (hopefully the one whose heads are currently nearest to it).
Suppose that, during a "scrubbing" operation, when the RAID system is explicitly asked to verify the consistency of all its data, an inconsistency is discovered. The question of how to resolve this inconsistency has no simple answer. Note that this problem equally affects RAID5 as it does RAID1, and other RAID levels as well.
In a RAID1, an inconsistency appears as two mirror sectors containing different data. How does the RAID system decide which sector represents the correct data? Well, that is an implementation detail, and I honestly don't know how the Linux system is implemented exactly. But the problem is fundamental: the mirrored sectors are different, and there may be no indication as to why they have become that way. So the best the RAID system can do is to flip a coin: choose one at random to be the "correct" data.
In a 3-disk RAID5, an inconsistency appears in the form of a triple of sectors whose parity sector is incorrect. The question is: which of the 3 sectors is wrong? Again, there is no obvious answer. Any of the three could be corrupt, and there's probably no way to know. If you must choose one sector to be recalculated from the other 2, you have 1 in 3 chance of choosing the one that was actually corrupt. This demonstrates that RAID1 is actually "safer" than RAID5, in this sense. The RAID1 has a 50% of choosing the wrong sector, while the RAID5 has a 67% chance of choosing wrongly.
To summarize: RAID is not designed to catch disk errors as they happen. RAID provides fault-tolerance in the face of whole-drive failures. Nothing more.