I totally agree with everything KYS has told you. Being aware of the possibility of Duncan reacting in an aggressive way and preparing for it is vital. You can never let your gaurd down on this one.
Training classes are a good idea too, you need to have superb control with a dog like this.
You also need to get dominance over this dog. Duncan is making the decisions here and it he shouldn't feel it is up to him who you are allowed contact with. Control and respect are lacking and the dog will bite again.
This is one of the few situations where real physical correction has a place and it is needed. Along with increasing your control and dominance you must make it clear to Duncan that this behaviour is unacceptable. Any sign of this must be corrected very strongly indeed - the pack leader does not allow lower ranking idividuals to instigate fights. If they did the pack would fall apart. Any low ranking animal attempting to instigate a fight is dealt with quickly and very, VERY strongly.

As for your boyfriends roommate......it is unforgiveable for him to come into someone's bedroom without permission, dog or not!! If he is not socially aware enough to know this you need to lock the door!! Put a very large notice on the door too -"KNOCK and WAIT!"