Well your double ended relationships seem wrong (and confusing)
For example
Code:
+============+ +============+
| | 1 + | |
| Site |-------------------| Grid Ref |
| | | |
+============+ +============+
A site is composed of many grid references
A grid reference belongs to one site
Depending on what your local conventions are on multiplicity, you might consider
{m,n} - between m and n
{m,} - at least m
{,n} - at most n
* - zero or more, same as {0,}
+ - one or more, same as {1,}
For me, I would remove Species_Ref_No from Site_record (a site record will contain many species, so it can't really be here), and remove SiteID from Site_Species_Record, and replace it with a Site_record (so you can easily get date and recorder).
So it would read
A Site has many Site Records
A Site Record has many Site Species Records