Without too much details, I am trying to answer your question. I would suggest some form of hyper-heuristics or meta-heuristics.
Separate the learning mechanism from the your problem domain would be useful. From your question, I guess the problem domain is likely to be the abstract trees with the symbol set allowed in each node. Perhaps a storage of these solution trees may be required, as you suggested you wanted to find several of them.
The learning mechanism could be ILS, some GP, or some MA. This list is not exhaustive. You have not mentioned yet your preferred algorithm search mechanism.
This separation can occur with a two level model. It means the machine learning is very dependent of the problem domain. Also the problem domain may need to be adapted to the top level. Another option is to use a three-level model that keep the machine learning and the problem domain more independent from each other. The latest option can help to extract the algorithm more easily.
You need to state your problem a bit more specific. Let me try to rephase:
Your input are ASTs of your source languages, but in a polyglot system. So in principle each could come from a different language, but you don't know which. Your goal is to label the which AST came from which language?