didn't look really deep but saw this in save()
    
            $this->_beforeSave();
            if ($this->_dataSaveAllowed) {
                $this->_getResource()->save($this);
                $this->_afterSave();
            }

but there's no setter for $_dataSaveAllowed

maybe extend shipment model to add a setter for this attribute and set it to false in your observer?