Force all labels visible in GeoServer
Label placement is more an art than a science, GeoServer tries very hard to put as many labels as possible on to your map while making it look good. As part of this it will not draw a label that goes over the edge of the map. This means that with small tiles and relatively large labels it may not be possible to place many (or any) labels. The easiest solution to this is to use an untiled layer with just the labels on which you overlay on top of your map. Since there is not much rendering involved in labeling this should not be too slow if it isn't cached.
You can also work round this using options such as gutters and meta-tiling depending on the exact situation if you must have tiles.
You can use :
<VendorOption name="partials">true</VendorOption>
to tell geoserver to render labels that are partially visible