give back changes - they are happy to do it anyway, because they want
those fixes in the next version that you release.

And what is gained by keeping your competitors from using your
program?  You aren't suffering a financial loss, unless you are
charging in a different way - such as for support.  You aren't losing
developers, because the competitors developers aren't going to work on
your program for you just because it's GPL.

I just don't see any way that the GPL license itself is going to drive
more developers to your code.