I'm not sure I'm understanding the situation. You (Skullgrid; SG) were asked by an acquaintance (ACQ) to help work on a software package that ACQ would deliver to a software firm (SWF). So far, these are the relations that I see:
- SG is doing a favor for ACQ
- ACQ has a contract with SWF
Now at the "handoff time", which I presume is when SWF accepts the software as complete and delivered, SWF is complaining about how the software package will be maintained.
If I understand all of that correctly, why does SWF's complaints involve you? You do not have a relationship to SWF. And SWF (correctly) will not let a third-party have source-code access to software that SWF paid for, unless you (SG) are working as a contractor under ACQ.
The real question is how ACQ is handling these concerns: ACQ should demand that SWF negotiate a maintenance contract, one which allows ACQ to use any contractor of their choice (which could include SG).
The idea that SG -- someone with no relationship to SWF -- can use a software license to keep source-code access in order to do future maintenance, that idea is likely dead-on-arrival: SWF owns the software upon delivery, in full. Unless the contractual agreement between SWF and ACQ allows for ACQ to retain a license, ACQ cannot then extend a personal license to SG.
A maintenance contract, however, would grant such a license to ACQ. And if such contract allows for subcontractors to access the source code, then formalizing SG as an unpaid contractor would be a way forward.