Each adapter implements IDataAccessAdapter. Each typedlist also implements a generic interface, ITypedListLgp2. With those you can create generic code which can work with instances from any of your plugin's code.
I don't see what the central DAL has to do with anything, if the typedlist is to be filled with the dal related to the selected plugin. Or what you mean with 'DAL', is that the dbspecific project?
IMHO, if you want this to work, you should ask the plugin to create an object which contains an instance of the plugin's DataAccessAdapter and an instance of X. The object then provides X to the grid to bind to and provides the adapter to fetch X. The code using this object works with IDataAccessAdapter and ITypedListLgp2 so it's not bound to anything specific.
BUt without more information I can't help you further: there are too much unknowns, e.g. why you can't change the code which is actually the problem here, why the plugins have their own 'dal's but data-access has to use the application's dals.
We do support a single dbgeneric project with multiple dbspecific projects, if the mappings are done in 1 llblgen pro project and to different databases, e.g. sqlserver and oracle: it will then generate 1 dbgeneric project and multiple dbspecific projects (1 per db) so you can fetch an entity X using both dbgeneric projects.
However this is the opposite from your situation it seems: you have multiple times a dbgeneric project, and you want to fetch a type from that using multiple dbspecific projects (the plugin one, the ones in the main application).