What are the usual culprits preventing port forwarding from working properly?

I want to run a minecraft server for me and my friends on an old pc. I have been trying to port forward 25565 so that they can join via my public IP. So far I have done the following:

Logged into my router and enabled port forwarding on 25565 for the internal IP of the server pc.

Set the server pc to a static ip

allowed incoming and outgoing traffic for 25565 on windows firewall

put the server pc in a DMZ on the router

In case you are wondering I have not changed the server ip line in the server properties. The server works locally even on other ports, I just can't connect from an external ip.

Any solutions or suggestions would be appreciated!

Well is your router behind another router.(you do know your isp's modem/gateway is also a router and needs to have your router in dmz as well. Carrier nat(unlikely but possible). A quick check is see what your router gets for wan address. If its a 192.168.x.x. 172.16.x.x or 10.x.x.x. Your behind another router. If its a 100.64.x.x its usually carrier nat.

You use either port forwarding to an IP, or only use DMZ, not both at the same time…
With proper port forwarding to a static LAN IP, it should work if the firewall allows those ports thru as well. This has nothing to do with DMZ.
Using DMZ means the entire PC and ALL ports are allowed to that PC, which must be at a specific (static) IP address. You still have to allow the ports thru the PC firewall of course, but need to do nothing else in a DMZ. DMZ is more "dangerous", as all ports, including common Microsoft hack ports, are all open to the Internet.

Finally, in all cases, you need to know your public IP address to connect to from the "outside world". That is what all your friends connect to.