DXGI_FORMAT_R8G8B8A8_UINT is not equal to uint4.
Strange, I use exactly the same setup and it works for me. Except for the weights I use just one dword, since the values are between 0..1 and 8-bit accuracy is enough.
I use DXGI_FORMAT_R8G8B8A8_UINT in the input layout and uint4 in the hlsl vertex structure.
Otherwise, I store the bone indices in a dword but that's same as 4 bytes.
You can use D3D11_APPEND_ALIGNED_ELEMENT instead of calculating the offsets yourself.