when I have boot problems I use grub-mkconfig & grub-install. Specifically, open a terminal and enter:
this will create a grub configuration file in your /home directory.
grub-mkconfig > ~/grub.cfg
Now you can compare it with the configuration file that grub is currently using...
use gedit to open the newly created grub.cfg and, in another tab, open /boot/grub/grub.cfg (this is the current file that grub uses to boot the various operating systems you have)
If they are different it may be worth giving the other one a try, here are the steps:
The first step effectively saves your original grub.cfg, in case you wish to return to it (just delet the new one and remove the .bak from the file name)
sudo mv /boot/grub/grub.cfg /boot/grub/grub.cfg.bak
sudo mv /home/grub.cfg /boot/grub/
Then reboot, if this doesn't work then I would try:
note: it is important not to specify a partition (eg. /dev/sda1) for last command.
sudo grub-install /dev/<MBR name here eg. sda>