foreach_set - Doesn't "False" toggle selection off?
This seems to work:

oa = bpy.context.active_object
bpy.ops.object.mode_set(mode='OBJECT')

sl = np.zeros(9, dtype=np.int32)
sl[8] = 1

setV = np.zeros(len(oa.data.vertices), dtype=np.bool)
setE = np.zeros(len(oa.data.edges), dtype=np.bool)
setF = np.zeros(len(oa.data.polygons), dtype=np.bool)

oa.data.polygons.foreach_set("select", setF.ravel())
oa.data.edges.foreach_set("select", setE.ravel())
oa.data.vertices.foreach_set("select", setV.ravel())
oa.data.update()

bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.object.mode_set(mode='OBJECT')

oa.data.vertices.foreach_set("select", sl.ravel())
oa.data.update()

bpy.ops.object.mode_set(mode='EDIT')


Maybe this code could be simplified?