To answer your questions 1 by 1:
Ports are based within TCP/IP, which is software based, rather than hardware.
The ethernet controller is the device driver which controls the physical device itself.
Packet forwarding forwards packets from one device to another. (Router to Router, Router to PC, PC to PC)
The TCP/IP stack would control all the devices (NICs) on that device. So any device only really has 1 TCP/IP "stack".
You can set up a port forward to forward packets from any port (or series of ports) to any other port (or series of ports).
And I'm sure that answer your question, but really doesn't answer your question.