Is it possible to give each render layer specific render settings?
You can't switch between CPU and GPU if the render layers are in the same scene, but you can have multiple scenes that each use a different rendering device (CPU/GPU). You can then work in the compositor with the render-layer from the GPU rendered scene and the render-layer from the CPU rendered scene.

So, you need to recreate the render layer you want to render with a different device, in a new scene, and then change the 'device' under render settings. Obviously, this comes with its own complexities if you have a complicated scene as you may have to copy many objects into the new scene to get that render layer to appear correctly.