Khurrum,
If you are interested in computing multi-group cross sections using OpenMC, you may consider using the "openmc.mgxs" Python module that was developed specifically for this purpose and included in the v0.7.1 release. The "openmc.mgxs" module can compute macroscopic and/or microscopic cross sections for one, some or all nuclides in a material, cell, distribcell, or universe tally filter. To get started using "openmc.mgxs," consider looking at the example IPython Notebooks and the API documentation on the website
here. The Notebooks in particular provide a lot of examples of how to compute macro/micro cross sections for real pin cell and assembly problems.
If instead you wish to compute your microscopic cross sections manually using your own inputs and data processing scripts, then I think you are following the correct direction with the process you described earlier. You will need a reaction rate tally and flux tally in the *same* "domain" (material, cell, or universe filter). The flux tally cannot be defined on a per-nuclide basis - only the reaction rate tally should be defined for one or more nuclides - the flux tally cannot be defined for a single nuclide and is instead tallied for all nuclides across the tallied "domain."
After running a simulation with the reaction rate and flux tallies, you can then divide their values to compute the *macroscopic* multi-group cross section for each nuclide in the reaction rate tally. If you wish to obtain microscopic cross sections, you must divide out the nuclide density (in units of at/b-cm) which you can find in the "summary.h5" output file.
Again, all of this can be done for you with just a few lines of Python code if you choose to the "openmc.mgxs" module included in the Python API.
Best,
Will