I believe you are overthinking how all this works too much.
fc isn't an object, but is holding a string value, which is the name of the feature class in your gdb. so when the buffer tool see fc, its actually reading the string that it contains and check your workspace for a fc with that name. You need to have it use a string of your selection FC as input, so all you need to do is have the input add the rest of the file name to it.
So you would want
arcpy.Buffer_analysis(fc + "krogerselection" , blahblah other parameters) to get the selection fc(Bro_ADDSkrogerselection for the first time through the loop)
instead of
arcpy.Buffer_analysis(fc, blahblah other parameters) that gets regular fc(Bro_ADDS for the first time through the loop)