This article explains how to set a different home position for each instance of the same part in an assembly. This workflow should be the same for both CAMWorks and SOLIDWORKS CAM (Professional only, as Standard does not contain assembly machining).
In assembly machining, you can define a global home position for the entire assembly or set a different one for each part. In cases where each part in the assembly is just another instance of itself and it is necessary to define a different home position for each, you will need to double click on Part Manager and use the Split Instance button to create a setup for each needed home position.
In the example above, there are four instances of the same "BracketArm" part in the assembly file. However, the parts are grouped into two separate part setups, which will each have different home positions.
For each Feature Manager, right click Feature Manager and select Insert Mill Part Setup. Then set the origin as desired. This set origin will become the home position for the selected part setup.
After creating your features and generating operations, double click on the Setup in the operations tab to access the Setup Parameters and define the Output origin as the Part Setup Origin.
This will set the home position for all parts as the selected origin from the previous step.