I would like top know if I need 5 public IPs on my network ( 1for my asp application, 1 for the Modem, 1 for the Router and 2 for the Security Firewall)?
This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, see the FAQ.
You should clarify but if I understand you correctly, no. You will need one public ip address that your modem will use. Your router can provide you with private addresses (NAT) for your internal devices.
If you use 1 IP address, then you will need to use different port numbers, otherwise the router will have no way to distinguish which device on the inside to send the traffic. Alternatively, you could set up a reverse proxy like nginx and configure unique URLs that are proxied to the different servers on the inside based on the URL.
Personally, I would use 2 IP addresses if that is an option, one for the modem and ASP application, and one for a VPN device. You should use the VPN to manage the router and security firewall, otherwise those devices are exposed to the internet for botnets and the like to try to hack them 24/7, and they will try. A VPN is usually less hackable provided that you use a certificate or strong pre-shared key.
For some services, like SIP and XMPP (Jabber) but not HTTP nor HTTPS, you can use a DNS SRV record to specify a different port number and most clients will recognize it, this is specified in RFC 2782. Web browsers have not implemented this behavior although it has been filed as a bug against Mozilla since 1999. Based on reading the bug comments it seems that the problem is that parts of libraries would have to be rewritten to allow for this change and that has been a barrier to implementation.