Seu problema é que .*
corresponde à string mais longa possível; no seu caso:
memory-type="3" reference-number="1" crc="0"
↑-------↑
Você deseja que corresponda apenas o 1
.
A maneira mais simples de fazer isso é combinar, não qualquer número de qualquer caractere,
mas qualquer número de qualquer caractere exceto para aspas :
$ echo 'memory-type="3" reference-number="1" crc="0"' | sed 's/reference-number="[^"]*"//g'
memory-type="3" crc="0"