I can describe a solution that runs in linear time and is likely to give a solution that is close to optimal, if all of the sets $S_i$ are chosen uniformly at random, and only for the specific parameters you mentioned. The method is easy to describe; explaining why it is likely to be close to optimal is much hairier.
Algorithm
Pick two sets $S_{i_1},S_{i_2}$ that share two elements in common.
Pick $S_{i_3}$ that shares an element with $S_{i_2}$ and is different from $S_{i_1},S_{i_2}$.
Pick $S_{i_4}$ that shares an element with $S_{i_3}$ and is different from $S_{i_1},S_{i_2},S_{i_3}$.
Repeat until you have chosen $S_{i_8}$.
Output $S := S_{i_1} \cup \cdots \cup S_{i_8}$.
Running time
This can be implemented in $O(n)$ time. In preprocessing, you build up a hash table that maps $e_j$ to a list of all sets $S_i$ that contain $e_j$. This can be done by scanning through the sets and doing $3n$ inserts into the hash table. Also, build up a second hash table that maps the pair $(e_j,e_k)$ to the list of all sets $S_i$ that contain both $e_j$ and $e_k$. This too can be done by scanning through the sets and doing $6n$ inserts. Then, step 1 of the algorithm above can be implemented efficiently using the second hash table, and each subsequent step can be implemented efficiently using the first hash table. When the algorithm says "pick", you can choose randomly from among all choices. If you ever get stuck (there are no valid choices), you can start over (this is unlikely to happen).
Analysis of optimality
Why does this work? The reason involves some more combinatorics, and relies heavily on the assumption that the $S_i$'s are random.
In particular, under this assumption, I believe it is overwhelmingly likely that the optimal solution covers 9 subsets. My estimates suggest that there is something like a $2/10^6$ chance that there exists a solution that covers 10 subsets; while the chance that there exists a solution that covers 9 subsets is nearly 1. So, we can focus on how to cover 9 subsets.
I also claim that the algorithm above is likely to give a solution that covers 8 subsets. In particular, by construction, if it terminates, it outputs a solution $S$ that covers 8 subsets, namely, it covers $S_{i_1},\dots,S_{i_8}$. Also, by construction, $S$ has $3 \times 8-2-6=16$ variables, as $S_{i_2}$ has two variables in common with $S_{i_1}$, and each subsequent set has one variable in common with the previous sets. Doing some combinatorics, it is overwhelmingly likely that there will exist some pair of sets $S_{i_1},S_{i_2}$ that have two variables in common (in fact we expect about 18 of them on average); and for each, set $S_{i_j}$, it is overwhelmingly likely that there will be another set we can choose for $S_{i_{j+1}}$ that has one variable in common with it (we expect about 8 or 9 of them on average). So the algorithm is overwhelmingly likely to succeed.
Thus, this gives an efficient algorithm that outputs a solution that covers 8 subsets; and the optimal solution likely covers 9 subsets; so this is quite close to optimal.
I hope I got all the combinatorics right... I recommend you test this to see if it actually works out as I am expecting.
Caveats
As a reminder, this only works if the sets are chosen randomly. If they have some structure, it might fail badly. Also, it is very specific to the particular parameter settings you have listed (especially, $n \approx m$).