I wasn't able to make any progress with your problem yesterday, but I only spent 15 minutes or so on it.
Isn't the set S_i, as you have defined it, equal to ##\{B_\alpha\in B|B_\alpha\subset C_i\}##? This is what I'm thinking:
Let i be an arbitrary member of I. Since C_i is a member of a base, it's open. Since B is a base, this implies that there's a subset ##A_i\subset A## such that ##C_i=\bigcup_{\alpha\in A_i}B_\alpha##. The ##B_\alpha## with ##\alpha\in A_i## must be subsets of C_i, so this ensures that the set S_i is non-empty.
Let ##\alpha## be an arbitrary member of ##A_i##. Since ##B_\alpha## is a member of a base, it's open. Since C is a base, this implies that there's a subset ##I_\alpha\subset I## such that ##B_\alpha=\bigcup_{j\in I_\alpha} C_j##. The C_j with ##j\in I_\alpha## must be subsets of ##B_\alpha##, so there's always a C_j (with ##j\in I_\alpha##) such that ##C_j\subset B_\alpha\subset C_i##.
I don't see how to prove that each S_i are countable. That would be a surprising result actually. I would expect those sets to not be countable. But maybe you can do what you're suggesting at the end anyway: For each i in I, choose an ##\alpha\in A## such that ##B_\alpha\subset C_i##. Then maybe you can prove that the set of all ##B_\alpha## chosen this way is a countable base. (I haven't tried that myself). It's clearly countable, because of how the sets were chosen.