In most cases, there is either a Unicode character or a PM (virtual) scan code. In a few cases (Esc, Tab, Backspace), both exists. It is normal when a dead key is returned to also return a Unicode character for the stand-alone character associated with the dead key.
The BIOS scan code is returned because the translation is dependent on the keyboard layout. This is done to emulate the earlier DOS and OS/2 keyboard layouts that allow the translated (BIOS) scan code to be set by the layout.