I'm attaching a simple test case POM for this problem, but essentially the plugin-level dependency information isn't interpolated at the time that it's injected into the plugin descriptor for eventual resolution and addition to the plugin classpath. Later, when this plugin is executed, the custom dependency cannot be resolved, and the plugin classloader can't be created.
This is a result of not preserving the original interpolated values for plugin-level dependencies in the dynamic build section of the pom. Just like plugin groupId/artifactId/version, dependency information should not be subject to changes during the course of the build. Therefore, they should be made concrete before the project instance is returned from the project builder initially.
I have what I believe is the fix for this issue, but I need to take the attached test pom and transform it into a formal integration test before I can pronounce this one closed.