I wasn’t sure, as the description suggests that addresses from the same IP subnet are randomly scattered among the VLANs. So it’s fine to untag any packet coming from any of the VLANs from the client to the WAN side, but the problem arises when you need to tag the packet in the opposite direction as there is no way to map the MAC address to VLAN ID.
So either I’m missing something important in the description, or the only solution I can see is to act at L3 and use policy routing as described here. If there is a risk that two devices in different VLANs might have the same IP address (the description does not clarify whether the address spaces are coordinated or not), NATting each VLAN to a distinct address or pool is necesary, otherwise there could be weird failures if two clients with the same native IP address would establish a connection to the same server from the same ephemeral port.