I don't know how much garages charge to reprogram the computer units. If it is not much then could be worth doing in case they have become corrupted. Certainly there should be no need to "upgrade" the software unless some parts have been introduced to the car that require an upgrade.
I think it more likely that an actual sensor/switch/other hardware is faulty and introducing 'noise' to the network that the BCM is interpreting as signals to turn the lights/wiper on. In the same way that that wiper switch was creating noise that turned the indicators on.
Maybe you could just remove the wiper switch and see if that fixes the problems - obviously you won't be able to drive the car if its raining, but would isolate that as the component causing the issue. I presume the car would still function with the switch removed! Bit more difficult to remove the wiper switch and use the car. Unless of course the issues occur if the car is just standing still idling.