Considering I had kill pressure as Braum into GP (to the point where their jgler (and then my jgler) started spending all their time top) Braum is definitely viable at low-mid elo.
I run 0-12-18 masteries with grasp of the undying.
Rush an iceborn and boots based on enemy team. Tabi, Merc, Swifty, and Lucidity are all viable options.
Vs AD top go into a dead man's plate. This gives you more map roaming and health for grasp.
Randuins or thornmail next if most of the enemies dmg is ad. Otherwise veil is a good option.
When trading with people get your grasp up from attacking minions then jump to whatever minion they are attack. Auto>Q. If they aren't going to burst you then aa 2 more times before backing off.
Early levels braum does a bunch of dmg and with his shield he can trade in minions very effectively since you will both be getting hit but you will take reduced damage.
Runes stack up on armour because w gives more stats based on your stats.
Max Q first. If you are going into a qquinnor something and getting poked hard max e 2nd, otherwise get w. In a 1v1 don't engage with your ult, save it for when one of you are trying to disengage. If they flash just ult then and walk right back in.
At a certain point Braum will start to be outscaled by a lot of champs, although his scaling among tanks is quite good thanks to w and e. At this point use deadmans to roam around and jump on other lanes.
Be warned that you can get some flame for playing braum top, especially if you fall behind.