Dear Daniel,
I start with your second question, but it maybe explain something for the first. There can by only one source routine linked to FLUKA, so it must contain all the required samplings.
To have multiple histograms in one source routine, you need to duplicate only the sampling function (located in the file: include/source_library.inc) with different names. This is viable if you have only a few histograms.
If you have more than a few, then probably the easiest solution would be to create a single histogram which describes the whole SOBP beam.
Cheers,
David