The order of individual patchers within a patch file is not preserved between sessions. Every time you re-open the "Build Patches" dialogue, the order is reset to what appears to be asciibetical order.
Perhaps something like the following in patcherSevice's getPatchPlugins:
patchPlugins.forEach(patchPlugin => {
patchPlugin.patchers = patchPlugin.patchers
.map((patcher) => [service.settings[patcher.id].order || 0, patcher])
.sort((a,b) => (a[0] - b[0]))
.map((e) => e[1]);
});
And the following in buildPatchesController's updatePatchStatuses:
patchPlugin.patchers.forEach((patcher, i) => {
$scope.settings[patcher.id].order = i;
});
patcherService.saveSettings();