I see the same behavior with in-place plugins.
The problem with in-place plugins is, that everything (i.e. the app and all plugins) is compiled together in a single step. As all files are visible to the compiler, it has to decide, which of the duplicates to use. When plugins are installed using grails install-plugin, the conflicting files are not part of the plugin's distribution zip (grails package-plugins filters them out) and hence not visible to the compiler.
If you never execute your plugins by themselves without the hosting application, you can simply delete Bootstrap.groovy, DataSource.groovy, UrlMappings.groovy and Config.groovy, as they are not needed in this case. BuildConfig.groovy is another story, but it is ignored by the runtime, as it is only used during build time and should not end up in the war and plugin zip anyway.