Just to clarify, a new BCM does not come preprogrammed. If you have to have it replaced they either read the settings and re-apply those settings to the new one or they build a configuration off the VIN and build sheet and apply those. The BCM might auto set some things depending on info from other modules present on the networks, but it wouldn’t work to just plug in a new one and fire up the car.
AlfaOBD can pretty much do the same thing, minus building a completely new configuration.