Я бы сделал так:
Во-первых на ховере я бы сделал просто изменение позиции фона, то есть
.message .button:hover{
background-position: -9px -47px;
}
Вы и так уже указали картинку, второй раз делать это нет смысла.
Чтобы понять, что трабла именно с картинкой, а не с видимостью блока, то замените картинку цветами. То есть изначально допустим просто красный фон, а по ховеру зелёный. Если всё хорошо - то отлавливать дальше.