Well, I see a few things wrong.
First, I see different IPs from the same subnet attached to two separate interfaces. Why did you/would you do that? That can only cause problems for you, even if you don’t use MetaROUTER. In certain situations, you could get away with overlapping IP space with different prefix sizes as long as the interface with the larger subnet has proxy-arp enabled on it, but I don’t think that makes any sense for your situation. Each subnet should be assigned to only one interface.
If having two IPs from the same subnet on two interfaces is kinda-sorta working for you other than to/from the MetaROUTER, it’s probably because you have ether3 set as a slave to ether2 – meaning you have the switch chip active – and you just lucked out. Again, this is a bad idea. If the port is part of a switch or a bridge, the IP address should always be added to the master-port or to the bridge interface, and not to individual member ports in the switch group or bridge.
When you set a static interface for a MetaROUTER, and that static interface is an actual, physical ethernet port instead of a vif, then that ethernet port will be dedicated to the MetaROUTER, meaning the host router can’t use it for anything else. So when you set ether3 as a static interface on your MetaROUTER, that means that the MetaROUTER can talk to other computers plugged into ether3, but not to the host router itself. Also, I doubt this will work properly if ether3 is slave to a master switch port (although I could be wrong; haven’t tried it). You might try setting master-port=none on ether3 and add it to a bridge if that’s what you want to do.
Finally, in the case where you set a dynamic interface for the MetaROUTER, you still have the IP addresses on ether2 and ether3, not on bridge1. So I don’t know how you expect that to work. If ether2 or ether3 are members of bridge1, then the IP address still needs to be on bridge1, not on the individual member ports, as I said earlier.
In short, I would say that best practice for MetaROUTER networking is this: you can use either static or dynamic, but if you use static, unless you have a good reason not to, always assign a vif to the MetaROUTER statically, not a physical ethernet port. Then add the ethernet ports that need to communicate with the MetaROUTER to a bridge along with the vif. Finally, add the IP address on the bridge itself, and not to the vif or to any other ethernet port.
– Nathan