That diagram isn't clear, does the Mikrotik run a PPPoE server itself, and if so, why eth1,2,3 connect to more pppoe servers? or those are the interfaces connected to sectors, or network segments from where PPPoE clients reach the Mikrotik?
Use different pools for each PPPoE server. They can be in the same overall supernet if you like, as long as the ranges don't overlap.
In-interface matching won't work because each client is on his own PPP interface.
You might be able to assign a MikroTik-Address-List via RADIUS based on which PPPoE server the connection came in via. Then you could use the address list in the src-nat rule. I would leave that as a last resort since it is going to be complicated and require some work.
Someone else may have a better idea. Different ip pools is where I would go if I wanted to do what you are trying to do.
pppoe clients in group 1 should all have some easily-matched criteria that identifies them as group 1
Then a srcnat rule matches criteria1 and uses to-address=ip1
replicate this for group 2 and group 3 ... etc...
That's it in a nutshell. Now- what criteria to use?
A) Use a different IP pool for each group of users - this is easily matched by a srcnat rule:
src-address=172.16.0.0/16 action=src-nat to-address=ip1
src-address=172.17.0.0/16 action=src-nat to-address=ip2
etc...
B) Use the "address list" option on the ppp profiles to specify an address list for the user's IP to be placed in,
and then NAT based on the address list:
PPP Profile "group 1" -> address-list=Group1
PPP Profile "group 2" -> address-list=Group2
etc...
/ip firewall nat ->
chain=srcnat src-address-list=Group1 action=src-nat to-address=ip1
chain=srcnat src-address-list=Group2 action=src-nat to-address=ip2
etc...