In your netplan folder try deleting or commenting in your .yaml file the lines related to the MAC info:
match: #Comment or delete
macaddress: yourMacAddress #Comment or delete
I had the same problem, but because my dhcp server managed two interfaces, it didn't crash on error.
I add multiple After= in its unit file /lib/systemd/system/isc-dhcp-server.service:
So I am sure it starts when the services using my wifi card are done starting.
I could also add a ExecStartPre=sleep 10, for ...
You could try a port translation in your router’s settings. Say port 22222 from any public IP mapped to port 22 on the Pi’s local IP. Pick any valid port number above 1024. 22222 is just too obvious as an example. You will have to add the chosen port to the ssh command: ssh -p 22222 ....
(I didn’t check that syntax. Look it up.)
Some ISPs apply port limitations on private internet connections. This is to prevent novice users from possibly harmful network settings.
You will have to ask your ISP about such limitations.
If that is the case you will not get around getting an commercial internet contract where no such limitation exists.
For instance in germany Vodafone does not even ...