It looks like when you go to update the symbolization
(I hate that awful word: "symbology". ugh. It is neither a science nor a religion... anyway...)
you are not operating on the ArcMap layers you just added.
Instead, you are again looping through BasinList
BasinList is a list of feature classes on disk
even though you again make layers from the FCs,
they are NOT the layers in your ArcMap data frame.
For your symbolization loop, start with a new list of layers in the data frame,
using: ListLayers (map_document_or_layer, {wildcard}, {data_frame})
This list will contain the objects you need to update.
Then, when you do the
arcpy.mapping.UpdateLayer(df,BasinFeatureClass,PORSymbologyLayer)
make it
arcpy.mapping.UpdateLayer(df,BasinFeatureClass,PORSymbologyLayer, True)
Yes, the default is True, but, as it says in the Zen of Python (>>> import this):
Explicit is better than implicit.