1) How will my internal IPv6 systems communicate with IPv4 systems that are on the Internet? (i.e. outgoing ipv4 traffic)
If your internal servers are only IPv6, you need a way to translate between IPv6 and IPv4. One of the technologies available for this is 4in6, and I"m sure there are many others.
2) How will I use an IPv4 firewall / NAT to forward packets arriving on open ports to the internal IPv6 systems? (i.e. incoming ipv4 traffic)
Again, you will need a system that translates this and turn IPv4 packets into IPv6 packets.
Based on my research so far, I have decided to setup a single system to act as a router for my IPv6 tunnel. This system will have a static IPv4 address, and will act as my gateway for my servers to connect to IPv6 via the tunnel, and likewise for the IPv6 world to connect to me via that tunnel (unless I misunderstood something?).
Correct.
You're looking at a lot of work here...the simplest way is to run your internal stuff dual-stacked