I have found a solution! (For myself at least)
So by power of deduction and playing away all afternoon I have finally managed to connect to games first time every single time!
I am connected to a wifi extender so what I had to do was login into my TPLINK extender homepage and turn off the DHCP server, this allows my PC to get its IP address directly from my internets actual router, rather than the extender itself.
I then used that IP address and manually port forwarded all of the battlefield ports, you can ask ChatGPT to give you the list of ports as I can't paste them into here,
After doing this I restarted my router and restarted my PC, booted up battlefield (still connected to my WiFi extender) and successfully joined a game, quit, tried another and instantly connected! I really hope this helps anybody and it's well worth a try!