As Expat indicates, it is entirely absurd to use the same DSN for input and output in a COPY operation.
It probably only even looks like it might work sometimes due to the concatenation.
You should nibble each of your arms up to the shoulder rather than use the same DSN as input and output for a COPY operation.
For me it is not even good practice to do that for a SORT, although it would "work" as long as your SORT does not fail.
If you change that so the output is a different DSN, your IO errors will go away.
What the heck this has actually been doing whilst in Production is going to be down to a very interesting impact analysis. I hope you have retained all those output files, and have copies of the inputs, and can tell one from another.
That is the stupidest thing I've seen in a long time. Sorry, but it is. I hope its not been in Production long.
With a COPY operation it is not a question of "best practice". The results will be unpredictable. Maybe the concatenation has been saving you, I don't know. Perhaps that will result with the file opened for input after the file is opened for output. I really don't know.
What you must do is report it to your boss, so that someone can be assigned to look into the consequences. You've found it. You must notify, in writing. It is possible that data has been missing for many years. It is possible that data has never been missing. It is possible that data sometimes goes missing. If data has been missing over so many years, then there may be considerable costs involved. If this is discovered later, and it becomes known that you knew about it, then it will be your Bottom on the line. So, CYA.