Millions of years of evolution have already granted DNA the capacity for diagnostics, error correction and self-repair. Despite that, genetic replication is still error prone, and everything still fails, sometimes catastrophically. DNA is made of molecular bonds, and that "software" is necessarily also made of molecular bonds, there is no distinction between "software" and "hardware" at that level of physical granularity.
You're not going to get perfect replication of anything over millions of generations. That violates the laws of thermodynamics. The system has to change, randomly and unexpectedly, and it has to fail over time. Entropy must accumulate. And that's not even taking into account the radioactive hellscape of interstellar space.
This is the difference between mathematics and physics. Mathematicians can handwave away or ignore inconvenient or uninteresting complexities, and thus something like the infinite exponential progress of self-replicating probes across the galaxy seems obvious because the math is obvious, but reality doesn't allow that.
Yes to the first two, but "has to fail over time" is something you are making up--not a law of physics.
Local decreases of entropy happen continually. Resilient, error-checking, self-healing systems are possible.
>Resilient, error-checking, self-healing systems are possible.
You cannot have such systems be perfectly efficient. That isn't physics, it's magic.
I'd instead point out that while "perfect" isn't possible, we can relatively simply design the system to have an error rate such that there's less than a 1e-12 chance of an error occurring anywhere in the universe even if you did turn the entire mass of the universe into probes.
I'd counter that with the point that people are very bad at accounting for all the possible ways that systems can fail, and that while it's easy to create an error correction code that good, the actual failure rate of the system as a whole is likely to be much, much worse.