The only approach I've seen used to avoid pushing things into the GAC, but still use it from within SSIS, is to roll that DLL into a service, web or windows, and then change your code to use those service methods.
The other thought is if there isn't actual code reuse for these DLLs, just have them inline them into the package. You can add classes to the Script Tasks and Component, they're just C#/VB.NET projects.