What might have been the reasons for this low flight altitude?
Looking at the route your plane took, this low altitude flight was likely to avoid the polar jetstream. This is a band of wind that blows west to east in roughly the area the first half of your flight was flying through. It exists mostly between 30,000 and 39,000 feet altitude, and can range from about 60mph to over 200mph. I suspect that the low altitude was to keep the plane below this jetstream, avoiding the headwind and fuel and time costs that flying through it would create. To answer the other part of your question, as I mentioned in the comments, weight shouldn't have been an issue because the plane you were in (a 777-300ER), has more than enough engine power to maintain a higher altitude, even fully weighted.