Concept to fix match making and yes this is going to get confusing. MATH INSIDE!!!
If all roles were evenly split in being desired to be played everyone would usually get their first choice with an occasional second choice here and there. The current system would be working fine if this were the case but sometimes people have to go beyond their top 2 to allow for the game to get going and the issue of being alright with supporting every few games is now punished with having to support almost every game if you say you select it as either your first or second choice.
So what do I suggest? Another one of those hidden numbers. But this one rewards you for playing less desired roles like support by making you get a higher chance of getting your higher sought after position the next game. The math could perhaps use some work but the general idea is shown in the image and will make it a rotating door of mostly your top 3 positions to play most of the time.
This will not save a skill level where everyone says mid or feed but will make it so that you have a better chance to go mid after playing support. Sorry bronze 5 but there is no easy and good fix to the place you are.
The decimal next to the position (mid, support, etc.) is just the percent popularity of the position based on all players within 200 MMR of a player and is only an example for this concept. You will not know any of these numbers but you should feel the effect of them in making streaks of getting less desired roles go away but still have occasional times when you will be doing those roles.
The popularity is equated by a players first choice being 4 points, second choice being 3, third being 2, forth being 1 and fifth being 0. Remember this is just an example. And yes it is designed so that if you want to always play the least popular position you will likely be able to get it a majority of the time.
http://i.imgur.com/R5OC2WM.png
EDIT: I am kinda drunk tonigh so if there is any math wrong I blame the IPA.