The ideal solution for your environment then imo. Would be to have a sccm that deploys a semi thick image, with just the applications that everyone uses like office for example. Then based on specific criteria, be it site location, department etc, you deploy the rest of the software post deployment with packages.
It would depend on the extent of the software differences between sites. To save money you could do a thick image using mdt/wds and then just install most of the software.
The way i do is using mdt/wds and thick image, then for HR and marketing that have non general applications we just install those manually for the small amount of staff that have that software. Manually with an install script post deployment. The benefit is that mdt/wds is free. The down side is that if we provision a hr or marketing pc we have to remember which additional software is required. We just have a spreadsheet with a list.
WE use roaming profiles as well, which means for most of the staff we can hotswap their desktop during the day within a matter of mins and image a new pc within 20 mins.
With sccm you can do offline deployment, ie from a usb stick. But over the network is best. But if you want to only install the relevant software (from sccm packages) once the pc is plugged in at site. Then you would need to set up your sccm so that it works across multiple sites, which is a big job if not already in place and if just for deployment purposes could be ott.
Considering your requirements your options are limited. You may be forced to have one location (like a head office) where you image the pcs using mdt/wds and then from there at each site set up gpo that automatically installs software specific to the site once its on site.
If there difference between sites requirements are minmal and just domain specific configuration and not software differences. then i would just deploy one thick image using mdt/wds and have gpo modify the image to work with the different sites when its turned on.