|1) Slow speeds on the LAN? Or slow speeds from the internet?|
If the LAN, then you're restricted to the speed of the slowest device in the network. If you have 10/100 Mbps cards, but your router is only 10 Mbps, then you will be restricted to 10 Mbps. If however you mean slow from the internet, then that's an issue to take up with your ISP.
2) No. If you're buying a 1000 Mbps switch, connect it to a router LAN port and then connect all clients to the 1000 Mbps switch. This will give you gigabit on your LAN (Providing of course, all LAN clients also have gigabit NIC's because the same rule I put in #1 applies here also. A gigabit switch with 100 Mbps clients leaves you with a 100 Mbps LAN) and still allow you to use your router to protect you from external intrusion AND still provide IP's and internet connectivity to all LAN clients.
3) I've used a lot of D-Link 8 port gigabit switches here at work (for temporary measures only right) and have had absolutely no problems with them
4) Ok your question is a little confusing. First off, to use static IP's, you would have to have one static IP per client provided by your ISP. This is expensive.
You most likely have a DHCP connection to your ISP and your router is also using DHCP and NAT to provide internet access to your internal LAN clients. In all likelyhood, your router is assigning Class C private IP's to your LAN clients (192.168.xxx.xxx).
When you say "i have to have certain ports open for programs" are you talking about remotely accessing these programs from a remote location? Or do you mean within the LAN?
In the case of remote access, you would configure a port forward on your router to send that port # to the IP address of the computer within your LAN that has the application running.
If you're talking within your LAN then you need do nothing but ensure all clients have their builtin windows firewalls shut off. Make sure your router's firewall is working properly before disabling the builtin firewalls though right.