Solar Cell - Preventing overcharge of an NiMH battery
First of all, you have the three 5.5 V solar cells in parallel.  They need to be in series to generate 16.5 V.
NiMH batteries are usually charged using special IC's made for this purpose since they require special monitoring.  However at the low level of current you have available (40 mA) you can get by with a much simpler charger as mentioned here.  You need to make sure the current doesn't go above this level (it needs to be below 0.05C, where C = 800 mA).  If the current does go above this, up to C/10 (800 mA), then you need to add a timer so the charging cycles is not more than 3 hours.
You need to replace the 5.1 Zener with a 12 V one, such as the BZX85C12.  In addition, you will need to add a 110 Ω resistor between the output of the solar cells and the Zener.  The value is calculated by dividing the voltage drop 16.5 V - 12 V by the full-load current of 40 mA.   At no load, the Zener will dissipate 0.04 A * 12 V = 500 mW, or half the maximum rating (1 W) of the diode.