Your panels are generating 520W at noon, So I dont see why it cant power a 300W load at noon. Obviously at midnight the system is 'dead'.
With an effectively 4hrs runtime/day for
solar panels. Your heater is going though, 300W*4Hr=1200WHr.
Pt = (4.2 × L × T ) ÷ 3600, where L is liters/quarts and T is temperature difference
Pt = (4.2 × 40 × (50-10)) ÷ 3600, or Pt = 1.867KWHr
So I think for 1.2KWHr you
should be able to raise 20Liters/5gallon of
water by 50C.
But maybe you are trying to raise the temp of 1000L/250gallon if so I think the temp will only go up by 1 degree.
Pt = (4.2 × L × T ) ÷ 3600
Pt *3600 = 4.2 x L x T
1.2 * 3600 = 4.2 * 1000L * 1.03C
4320 = 4200 * 1.03C
4320/4200 = 1.03C
If you let me know how much water you are heating I can tell you the expected temperature increase, assuming there is no heat lost while you are 'charging up' the water with heat.