You need to iterate the files:
<Copy SourceFiles="%(ServiceFilesToDeploy.Identity)"
DestinationFiles="@(ServiceFilesToDeploy->'$(PublishDir)\%(RecursiveDir)%(Filename)%(Extension)')"
ContinueOnError="false" />
That way the copy task will be called for each file in ServiceFilesToDeploy.