It is likely due to the missing type parameter of MVector. It actually has two type parameters: MVector{S, T}, where S is the size and T is the element type.
This should help:
struct Foo{N, T}
dev::MVector{N, T}
Foo(v::A) where A <: Union{Vector, SVector, MVector} =
new{length(v), eltype(A)}(MVector{length(v)}(v))
end