Your approach looks solid. I would focus on removing components that represent stereotypical non-brain activity such as eye movement (ICA000 in your example). Components with activity focused around a single electrode are very likely large-ish artifacts that occurred only once or twice (e.g. a spike due to movement). You can safely remove those components, but not removing then won’t change much either. I usually prefer to leave them in the data, because you always risk removing some amount of brain activity as well (since separation is never perfect).
ICA does not care about the order of samples you give it. That’s why it is irrelevant if you epoch the data or not (as long as you use the same data samples).
If you are only interested in specific segments within the whole recording, I usually restrict ICA to these segments (because I completely discard everything outside). I’m not sure if that’s the case in your analysis when you want to look at the whole sleep duration.
In summary, ICA used like that works fine for cleaning eye artifacts. If you also want to get rid of muscle artifacts, you should take a look at alternative artifact cleaning methods.