One workaround is to use the vboxsdl program instead if the user has a file .xsession and inside the file it contains /usr/bin/vboxsdl -vm xp where xp is the name of the guess vm then the user will get that vm as their shell and the keyboard works