I had this problem for a while as well. And drove me crazy for real!...Mine didn't stay up against the roof, any little bump or sharp curve it will drop down about 2 inches...I tried different solutions with no succes..But without wanting to ....I fixed it!..
I was rushing yesterday morning and I was a little upset at my kids. Started driving to work and drove over the first speed bump at my neighborhood and there it goes the darn thing in my face... got so mad and I grabbed the darn visor thinking about braking it I pulled it down and when I felt the arm bent a little I stopped...and guess what?...I folded it back to normal and BINGO!! no more problems...no more dropping down by itself unless I do it manually . I didn't brake it but I think the inside part did bent a little. That made my morning and my mood changed right away...and my day was great....
try it guys It will work and the best part.....it wont' cost you a penny... hehehehe