My recent B spring woes have taught me that you can replace the B spring on a 105. It's not particularly easy, but I imagine since your 105 isn't too old, you can probably still pick one of these up through a Shimano dealer, or online. You just remove the C clip that secures the B-spring tensioner plate, pull it off (be ready for it to flick around a bit) and you'll have access to the spring. You can replace it, stick the plate on with the spring end in the hole, push it down over the main bolt, and basically you'll have to turn it until the little tab on the plate can catch the notch on the mech again -- requires a fair bit of effort as you need to be pushing it down as well as twisting it. Probably useful to have a vice of some sort.
Long winded explanation, but hopefully of some use.