My first idea was to load each epoch as a separate file into brainstorm
This is what you should do if you have separate files in input.
then compute the source level activity for each epoch
Technically, you would compute only one inverse model for all the epochs, and access the sources for each epoch as links. If you are not familiar with these concepts, start by reading the introduction tutorials at least until #23.
https://neuroimage.usc.edu/brainstorm/Tutorials
I was reading on this forum however and read that resting-state data should be loaded in as raw data, meaning a single continuous file instead of separate epochs
The best procedure depends partly on which connectivity measure you want to use.
For coherence for instance, it is best to compute it on long continuous recordings, where a few jumps are not too bad. But it could also be OK to compute the coherence independently on each segment of 3s, and average the results.
The decision on which solution is best is not trivial, and actively discussed in other threads of this forum, see the example below. Try to reproduce exactly what was done in your reference publications, as differences in the processing options may give completely different results.