A modern unit such as a classic Desiro for example will have a central control unit bespoke to the type of unit it's fitted to and can use bus networks to communicate with sub-systems. It will also be integrated with the trains hard wiring via I/O modules. The CCUs activities include high level commands such as desired brake effort, shut down engines and HVACs at certain GPS coordinates (guess which unit type...), feedback to the TMS display of the status of the train and store and report diagnostic events for maintenance/fault finding purposes. What it can't do is control sub-systems as these have their own OEM software such as traction (whether diesel or electric), brakes, doors, HVACs, toilets, PIS, TMS displays, passenger counting, CCTV etc etc.
Admittedly I don't fully understand software enough to discuss it at any length. All I do in my role is root around for the latest approved file and install it when I have to! What I can say in relation to the question though is that there are many angles a "software issue" can delay the introduction of new fleets, one reason could be if it's a sub-component such as a brake control unit then there could be lead times from the OEM and validation to be carried out before it's approval.
Also to note, sub-components linked on a bus network can potentially interfere with each other so even an engineering change on something not considered safety-critical can have serious consequences if it's not validated correctly.