Ah yes. SetVertexDeclaration is not per stream, but as a whole. So it is just a matter of matching the final declaration as the sum of all stream components?
Also, something tells me D3DXGetDeclVertexSize() has a redundant parameter. Why not just use sizeof(MYVERTEXSTRUCT)?
From the docs:
When calling SetStreamSource, the stride is normally required to be equal to the vertex size. However, there are times when you may want to draw multiple instances of the same or similar geometry (such as when using instancing to draw). For this case, use a zero stride to tell the runtime not to increment the vertex buffer offset (ie: use the same vertex data for all instances).
This leads me to believe that the parameter should be zero?