Check out www.wxtiles.com, it has most of those layers available free with an OpenLayers API. Note that it sits on top of an TMS map tile server, so you can access tiles like so: http://wx.wxtiles.com/tile/20160319_12z/rain/20160320_00z/4/13/7.png (this link will break shortly after the forecast expires).

The API allows you to request current forecasts (the tile/20160319_12z
part refers to the 12z forecast cycle of 2016-03-19 (UTC), and the forecast is for 12 hours after that), and also tells you what layers are available at any one time, and for what forecast periods. Some layers have more forecasts than others, but most are produced for every three hour period. The above example is the rain
layer. Below, there is the hs
(wave height) layer at the same place and time (land is masked in this layer).

Note that there is a more recent API, which also has support for Leaflet tile layers. There is a third API currently in development, which will work with the same map libraries but will provide access to new layers with improved cartographic style, via a new, faster tile server. It will also support vector tiles.
Note that the tiles follow the TMS pattern, not the XYZ pattern, which means you'll need to flip the y-index of the tile when requesting (leaflet has something like a 'tms': true
option when configuring a layer).
Disclaimer: I work for the company that produces these map tiles. We also have a WMS providing access to these layers, but access to that is not free. Get in touch if you'd like to discuss more.
y = (1 << z) - y - 1
, or find the map library's TMS switch (e.g. leaflet"tms": true
).