Well I figured out why it won't start. I migrated my PFsense VM to my new server when I did that, iptables was able to start on the old server. But now on my new server iptables is broken. The router VM was the last one to be moved. I shutdown the router VM and was able to start iptables on the new host, then restart the router VM and it works fine, until I need add or remove ports on the host.

I'm using KVM with the latest CentOS Kernel 2.6.32-220.23.1.el6.x86_64. The VM doesn't use virtio and I use vlans which require 8021q module to be loaded on the host and I bridged two VM nics to eth1.