Can I create a CollectionProperty of brushes?
Make a PropertyGroup with a brush type member. 

Can use a pointer property to point to an ID type, in this case a brush. brush = bpy.props.PointerProperty(type=bpy.types.Brush)

import bpy

# Assign a collection
class SceneSettingItem(bpy.types.PropertyGroup):
    name = bpy.props.StringProperty(name="Test Prop", default="Unknown")
    brush = bpy.props.PointerProperty(type=bpy.types.Brush)

bpy.utils.register_class(SceneSettingItem)

bpy.types.Scene.brushes = \
    bpy.props.CollectionProperty(type=SceneSettingItem)

print("Adding All Brushes")

for brush in bpy.data.brushes:
    my_item = bpy.context.scene.brushes.add()
    my_item.name = brush.name
    my_item.brush = brush


Python console check after running script above.

&gt;&gt;&gt; C.scene.brushes['Twist'].brush
bpy.data.brushes['Twist']