Do you connect anything else to m_variantManager? Disconnecting line will disconnect everything from "this", but you connect back only one slot.
Not sure if this will fix something, but you can stop signals on one object using object->blockSignals(true). This will shut the object up untill you call the function with false.
Try disconnecting only signal you connect, shutting m_variantManager instead of disconnecting, and adding qDebug() in relevant slots -- there is some rogue signal emitted when you disconnected it seems.
EDIT: Since you implement the slot yourself, you can always have a flag and check it in PropertyBrowser::valueChanged then just ignore the signal.
I wonder if m_variantManager->addProperty() (called from setSelected() doesn't immidiately set the values, or sets them but queues updates. Then your disconnecting in objectUpdated() causes those events to be discarded.