I don’t think that Member is versioned, so you’re probably falling foul of the issue described here: Silverstripe 4 gotchas
Assuming the above is true, and this is just a publishing issue, if you add the following method to your extension, the images should get published when you save the record:
public function onBeforeWrite()
{
if($this->owner->profilImage() && $this->owner->profilImage()->exists()) {
$this->owner->profilImage()->publishSingle();
}
parent::onBeforeWrite();
}