GroovyEngine is not creating script names that are understandable by the java debugger. It is basing the generated script name off of the name passed to it by the BSFManager. The only way that the Java debugger can link a compiled script to its source is if the script name matches the name of the source file.
In this case, scriptdef_ is prepended to the script name and breakpoints will not be reached inside of scripts loaded by BSFManager (ie- all scripts loaded by ant tasks).
The solution is simple. Change the logic of org.codehaus.groovy.bsf.GroovyEngine.convertToValidJavaClassname(String) so that it checks the name passed in to see if it starts with scriptdef_. If so, then remove it.