world_to_camera_view incorrectly centering on object
There may be another issue here, but at least the matrix-vector multiplication order from object to world space is wrong, it should be the other way around:

coordinate3D = obj.matrix_world * bpy.data.objects[obj.name].data.vertices[blenderVertexIndex].co