When federating multiple tables the column references in the remaining plan become broken. This happens because the columns have a reference to the original table names which are replaced with a virtual table in the current approach.
Possible solutions:
Re-write the entire query plan upwards.
Use a UserDefinedLogicalNode instead of a virtual TableScan to represent the federated part of the plan. The UserDefinedLogicalNodeschema(_) method retuns a DFSchemaRef, instead of a SchemaRef, which allows specifying a TableReference for each field.
The latter sounds easier. It'll require a ExtensionPlanner, E.g.: example.