As reported by Stefan Henrich on openbabel-scripting, calling OBMol::Separate does not copy residue info to the separated molecules.
Should be fairly easy to fix; I've done something similar already for StereoData.