Long answer, see TL;DR below!
I don't think it's an Nmap problem, but rather a port-forwarding problem. I imagine you are scanning from the local network (if that's not the case, please ignore this).
Port forwarding often don't work from the local network, for a very simple reason. Suppose this is your network:
| ( )
|---(Rpr--R--Rpu)---( Internet )---(X)
| ( )
A and B are two computers in your local network, both with private IP addresses, R is your router (which does the NAT and port forwarding), with one public address (Rpu) and one private (Rpr) on your LAN. X is a computer on the Internet, with a public address.
You have configured port forwarding on R so that packets arriving on Rpu:4245 (this means IP address Rpu, port 4245) are forwarded to A:4245.
When X sends a packet to Rpu:4245, it arrives to R, which translates the destination address to A:4245 and routes the packet to A. When A answers, it sends a packet from A:4245 to X. This packet is sent to R as its destination is outside the LAN and R is the gateway. R changes the source from A:4245 to Rpu:4245, and route the packet, which arrives to X as a packet from Rpu:4245 to X, everything is OK.
Now when B sends a packet to Rpu:4245, it sends it to R (because Rpu is outside the LAN and R is the router). Suppose R does the port-forwarding anyway, it sets the destination to A:4245 and routes the packet (from B to A:4245) to A. When A answers, it sends a packet from A:4245 to B. And this time it won't send the packet to R but directly to B, since B is on the LAN. The packet arrives to B as a packet from A:4245 to B, and hence cannot be seen as the answer to the packet from B to Rpu:4245, the source address does not match.
This could work if R also changed the source address to Rpr (or Rpu, or any address outside the LAN), because in that case, A would send the answers to R and R could reverse-translate the addresses, but that's probably not the case.
TL;DR. Run your tests from a computer outside your LAN with:
nmap -sP4245 -p 4245 x.x.x.x (
-sP4245 instructs Nmap to use a SYN packet to port 4245 during the ping scan). From your LAN, you can only check that the port is open by scanning (with the same options) your private address, but that leaves the port forwarding setting untested.