$HOME points to the user's home directory who is running the script. Systemd services are started with root so it will likely trying to
/root/theFolder/run.sh. Use absolute paths in service files.
You also have the
forking option set. This is needed for program that background themselves, does your script do this? Most do not and if yours does not you should remove this option or systemd will be waiting for your script to finish to claim it as started.
Also system service files that point to scripts in your home directory are discouraged and possibly a security concern. Since they are run as root anyone that can modify them can potentially gain root access to your computer. It is far better to copy the script to
/usr/local/bin and ensure it is owned and only writable by root to stop this. It is also a good idea to run the script as an unprivileged user using the
Group= options in the service file.
If you want to run it as your user it is better to put the service file in
~/.config/systemd/user/ and start/enable it with
systemctl --user enable yourservice && systemctl --user start yourservice (note, run as your user not root). See this for more info on user service files.