I've received a report of MRenderItem::setMatrix is not working with transform matrix recently. After doing some test, it seems to be only occurring with Maya 2018 Update 2 using OpenGL mode.
Our engineers found it is an issue in code and will fix it in the future releases. Some tests in VP2 are being done in the wrong order, resulting in stale matrix data being used to render the item. We can mitigate this issue by manually querying the MDrawContext world matrix before calling MRenderItem::draw(), that will cause the stale data to be properly purged.
auto mat = context.getMatrix(MFrameContext::kWorldMtx, &status);