Brushes usually only become non-solid when they are tied to an entity such as func_brush or func_respawnroomvisualizer, and are configured to be non-solid in their properties. World brushes, and func_details are always solid. When you find a brush that you can pass through, go and select it in Hammer, and see if it is tied to an entity, or is just a 'solid' or 'world brush'. Make sure the Object selection mode is selected, and not the Solid mode, on the toolbar that normally appears on the right side of the window.
Non-solid geometry can also be a result of a corrupt BSP, usually caused by dodgy source geometry in your VMF. It may help to delete and recreate the affected brushes.
If you are still struggling, it may help us if you provide some screenshots, and upload your BSP and VMF if you don't mind.