One problem I think I see with upkeep is that it's not the same on a large server versus a small server.
Bigger servers with more people tend to have longer matches. Your x5 (or your x1) will pay you an extra tick or two before the last person is rounded up. On servers where it's 15v15, the matches tend to be over quicker so you bleed more money. You pay at the end of the round so if the round lasts 2 minutes, you can end up owing money even on a x5.
Suggestion #1:
You are always paid for a minimum of 5 minutes per round. If the round lasted 6 minutes, you get paid for 6 minutes. If the round lasted for 3 minutes, then at the end of the round you get 2 additional ticks of money (as if the round had gone for 5 minutes). This will help even things out between short rounds vs long rounds.
Suggestion #2:
Alternatively, upkeep should be a factor of how long a round went. Chance of an item breaking is further modified by MINUTES_PLAYED / MINUTES_IN_A_ROUND. i.e., if the round timer is 7 minutes and the round lasts 3 minutes, then the chance of item breaking is 3/7ths normal. If the round was 6 minutes then it's 6/7ths normal.
Something like this might go a long way to solving the mystery of why some people are going broke on a medium armor suit while some are making money -- it depends on when you play, how crowded the server is and how long the rounds last (it may also depend on maps and just plain old who's online -- some maps are quicker. Some people are more prone to drawing a match out... Regardless, maybe we need to even things out a bit.)