@Derelict
The cable was the problem. I haven't replaced it yet because I just tried flipping the cables to see if the 100baseTX would change to the other NIC but both are now running full Gigabit so it definitely must be one of the two cables. Since it is working now I will leave it and will replace it if it starts to give any issues. I appreciate the help!
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=1009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER>
ether 00:1f:29:5a:65:b2
hwaddr 00:1f:29:5a:65:b2
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=1009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER>
ether 00:1f:29:5a:65:b2
hwaddr 00:1f:29:5a:65:b3
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
em2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC>
ether 00:25:b3:0e:1d:a1
hwaddr 00:25:b3:0e:1d:a1
inet6 fe80::225:b3ff:fe0e:1da1%em2 prefixlen 64 scopeid 0x3
inet 172.16.0.250 netmask 0xffff0000 broadcast 172.16.255.255
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
I'm so used to the cables I make being just fine I didn't think to check one of them.