Ok guys, the problem is resolved. It's my firewall rule blocking the connection...there's nothing wrong with using TCP or UDP, that's not the problem. They both will work.
Also, for people who are stuck: DO NOT FOLLOW THIS GUIDE!! If you follow this guide, you will fail, as it's outdated and a lot of settings are not shown and if do follow it, you won't know where the problem is.
Do follow this guide https://nguvu.org/pfsense/pfsense-baseline-setup/ It's updated with the latest settings.
For example, in pfsense 2.4.5, we have "TLS Key Usage Mode:" in OpenVPN Client settings and you have to toggle it to "TLS Encryption and Authentication". If you leave it as "TLS Authentication", which is the default, your connection will fail. (If you follow this guide, you will skip it altogether and your connection will fail)
Hope this helps someone out there and thanks for whoever authors nguvu.org, it's literally saving lives!