As for the "data could not be loaded" error, I don't know what the issue is without getting into the details of your particular situation. About the only thing I can suggest is to try to use client-side behavior (such as AJAX) rather than the server-side SelectedIndexChanged event. In the end I think you'll find it easier, although it is more work to set up the first time.
How you should implement new functionality depends on many things. In general, I assume you want to minimize the amount of work needed to upgrade your customized version of GSP to future versions. Therefore, your code should be as self-contained as possible, which means don't try to integrate it into all the different layers of GSP.
If you don't care about upgrading, then you might still want to make your code self-contained, since that will be easier to implement. But if you need to hook into the business rules of GSP, then you might need to perform a deeper integration.
To learn how to do the "deep" integration, use the debugger to step through the code from the stored procedure call all the way to the UI.
Hope this helps,
Roger Martin
Creator and Lead Developer of Gallery Server Pro