You can use rsync with the proper include and exclude options:
rsync -av --include='*/' --include='*.cnv' --exclude='*' data/* newdata
this will include all the directories, all the CNV files and exclude the rest. The creation of the directories is made by rsync automatically. A side effect is that all the directory structure is cloned into newdata, even if a directory is empty or does not contain any CNV file. If you can live with that, the trick is done!