My best guess is that a number of senate seats are 'removed' from each faction every month and then redistributed to each faction depending on their percentage. I haven't tried doing the math, but it probably works something like this:
There are 99 seats in the Senate, initially divided equally amongst the five factions with decimals rounded up for display. Each month, a couple of seats are removed from each faction (let's say two each for sake of argument), so it instead adds up to 89 seats divided equally. Those seats are then redistributed amongst the factions; the factions with higher percentages get more seats.
That's the way it works in my mind, at least. Again, I haven't done the actual math, so it's all theoretical.