That is a defect of the Octane implementation: it always gets the material from the Custom Object, ignoring the material defined in the Geometry List.
As workaround, create several custom objects, each one with its own material.
Unfortunately we cannot fix this issue, since the code was written by the Otoy developers, and is part of the Octane core.