You use (vla-add ... ) when you want to create something new somewhere. In your case, you would use it if the layer doesn't exist in the drawing. To get the active drawing (document) use
(setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
Then if you want to add a layer, you have to get the layer collection (table) first, like so
(setq LayCol (vla-get-Layers ActDoc))
Now if you want to add the new layer, now you use add like so
(vla-Add LayCol "MyNewLayerName")
Now if you want to put the objects returned by (vla-copy ... ), I would use 'copy' like you have it, and then you just need to update the layer of the new object you created, so add this portion to your code after you copy.
(vla-put-Layer cop "MyNewLayerName")
Hope that makes sense.