Your unpatched game contains a patch.rpa. Your downloadable patch contains patch.rpy and patch.rpyc. Usually, applying a patch overwrites any files with the same names that are already there, but that doesn't happen if they have different extensions, so they all try to coexist, which causes confusion.
That's not how Ren'Py works.
RPY files = base Ren'Py code files. Human-readable Ren'Py and python code.
RPYC files = compiled Ren'Py code files. What the game actually uses for run-time. These are recompiled every time the game is launched, if the base RPY files exist and have changed.
RPA files = archived RPYC and/or RPY code files. That's all.
The above is definitely true. Now for the part I am
fairly sure of, but not 100% certain: If a file exists as both an RPY (or RPYC) and inside an RPA (as an RPY and/or RPYC), they can co-exist just fine, but only the newer file is compiled into an RPYC. This means most patches can work on top of RPAs without any difficulty whatsoever, provided the patch files are newer than the archived files they are replacing inside the RPA.
There are tons of games where the files are in RPAs, and the patch is distributed as just RPY or RPY+RPYC files, and those work just fine. Again, it's because the patch's files are newer, and thus override the existing files inside the RPAs (which is different from overwriting an existing file with a new file of the same name; the older files inside the RPAs continue to exist, but because there is an overriding file, they're just not compiled into the game at run-time).
Now, to complicate all of this: once all those files are loaded, no two different files (or no two different places within the same file) are allowed to have the same
label (what Ren'Py uses to mark a specific named spot in the code to call or to jump to), no matter what the file dates/extensions/names are.