O 0 extra está sendo adicionado porque todo o valor que você está configurando é ímpar. O SQL Server irá preenchê-lo com um 0 extra para torná-lo uniforme.
declare @varmax varbinary(max)
set @varmax = 0x1234567 --odd
select @varmax --returns 0x01234567 with the padded 0
set @varmax = 0x12345678 --even
select @varmax --returns 0x12345678
Seu 9 está sendo descartado porque você está inserindo um número ímpar de bytes que preenche o valor máximo. Portanto, um 0 é inserido, mas isso transborda o número máximo de bytes e, portanto, também parece truncado. Consegui replicar seu erro... mas ainda não sei como contorná-lo.
Aqui está o valor que usei para o seu teste. Ignore os resultados... mas você pode copiá-los em seu próprio SSMS e ver a saída correta.
http://rextester.com/LMGQ8686