I have used BA and Gulf in F in the last six months, always BAH-LHR, not the other way around (I usually go to India and then back through the Middle East). Service wise both have been good. I dont see that much difference between airlines anyway. On that flight Gulf also had their new C product.
I personally still would go BA for the easy fact that this flight gives me 180 points on BA whereas Gulf Air does not really get me any personal advantage.
Bahrain: They have a great new Cathay Lounge which is very nice and which you can use if you have a Gold Card (normally BA uses the airport loung which is crap). They offer super fried noodles and fruits, cheese, desert and wine - so I had my dinner there and was able to sleep the whole flight trough to London. Only one thing with the 777 used on that leg - it is the doggy one with 19 seats in F class and the old entertainment system. But if this does not bother you - go BA!