Just a brief analyze of data samples you provided.
You cannot simply make pyinstaller gui.py. You should resolve all dependencies: or installing packages using pip, or pulling them from extracted PYZ archive folder. In the PYZ folder you can find all files, but you need to rename it and rearrange to modules.
You can extract some file from .exe using pyi-archive_viewer, modify them and put back. But be attention, all files in .exe are compressed using DEFLATE (zlib.compress() - you can watch this in source code of PyInstaller). So, when putting back you need compress file to the exact size, that was when you extracted it.
I did something similar on the past, here is the idea you need to carry:
You create the python script that you want to execute and obfuscate:
Another script opens the previous script, encrypts the content and base64 the encryption, and finally put in a variable like:
text = "cHJpbnQoJ1NvbWUgc3RyaW5nJyk="
On another python file, you ...