Are you using the Matrix class factory functions to create your view and projection matrices (PerspectiveLH,LookAtLH, and similar) or are you setting them up manually?
The way that you are multiplying the vertex positions by the bone offset matrices in your shader looks off to me, but I may be wrong. It would depend on whether the model and model loading code that you are loading from uses column or row-major matrices. If I recall, the D3DXMatrix stuff that SharpDX wraps uses row-major matrices,so I have usually settled on forcing all matrices that I use into that form for convenience, so you would want to multiply them like mul( vector, matrix) in the HLSL, rather than mul(matrix, vector) as you have.
For instance, when I used Assimp to load models, I needed to transpose all the matrices that the AssimpNet library loaded, as Assimp uses column-major matrices, in order to make the models render correctly. It's possible you have some sort of format mixup like that somewhere in your pipeline that is causing problems.
Shameless plug: Here is a project I got working using SlimDX and bone animations, it might be helpful to compare with your code.