If your model fails to produce expected results when you use OpenSubdiv with it, try the method described here to resolve it.
OpenSubdiv works on quadrilateral polygons. If the modifier encounters a non-quad polygon, it converts it to multiple quads. It does this by finding the centerpoint of the polygon, inserting a vertex there, and then splitting the polygon from the center to each edge's midpoint. The following illustration shows a triangle and a pentagon that have been split into quads using this method:
However, if the polygon is concave or has a hole in it, the centerpoint might be in empty space, which can cause problems when subdividing it.
In such cases, one solution is to subdivide the polygon manually before applying OpenSubdiv. The following illustration shows the same object containing two concave polygons (top and bottom), before and after OpenSubdiv is applied and set to 3 iterations. The version on the left, with concave polygons, produces a malformed OpenSubdiv object. The one on the right, with the polygons manually subdivided, is well formed.