Initial setup to unload/move goods was: train -> miniloader -> compact loader -> chest. Only miniloader are able to pull inventory from a train, compact loaders can't. However, as the compact loaders are cheaper to produce, I used them whenever possible. I merged chests up to the length of a 1-4 train to unload it into one chest to avoid any balancers/circuits for unloading. From there I used ultimate belts to push the inventory into assemblers and back into chests for loading onto the next train.
After running into UPS issues (maybe caused by the miniloaders, maybe by this one here), I switched. Each city block gets inventory by train. Each city block uses it's own small bot network now, separated from any other network. With 5dim MK 10 bots plus some research on speed, battery, cargo plus the "Moar Roboport" mod (my own one) for building these networks I can move inventory at insane speed with almost no UPS usage. Unloading from train is done using "ultrafast inserter" into regular provider chests, and moving the goods to assemblers/other trains is done using regular requester chests - all done by bots. I am at 50k spm now with 60 UPS.