The problem was solved by changing the implementation of EllipseItem::setGeometry to call the QgraphicsLayoutItem base class setGeometry method before setRect():

QgraphicsLayoutItem::setGeometry(rect); // Call the base class first
setRect(rect);

Hope this helps someone...