Right now there is a problem:
vs_4_0 is working in DX11 but NOT working in DX9
vs_3_0 is NOT working in DX11 but working in DX9
NOT working means HRESULT (E_FAIL) When calling Device::CreateVertexBuffer()
Why?
Those are Vertex Shader versions, I do not see how that is affecting the creation of a Vertex Buffer.
Can you show the some code on how you are creating the resources?
If you have further issues I can post the relevent (sections of) code that I use.
HTH
Ryan.