You have done everything right so far. The pincushion/bowing will be coming from the PVM. Google the service manual, go into the service menu and adjust the picture. The picture being shifted to the right can be fixed this way too, possibly a phase adjustment.
Be careful in the service menu, figure out how to get in and get out, and memorise how to adjust items up and down, and how to save. Only adjust one thing at a time, and in small steps, that way if you do something that kills the picture entirely, you can use the other button to reverse the change. Or turn the set off and on again. It's unlikely you will get to that point, but best to be safe.
If the service menu doesn't go far enough, you can adjust the horizontal size and placement (and only those) with the the ArcadeOSD tool - you will find it in the directory with crt_emudriver. Changing the timing around the horizontal sync pulse and porches for a mode will move the image on the screen left and right and resize it. Play around and see, knowing that you can hit Esc to go back at any time. You then save any changes you want, for other emulators. To make these timings stick for GroovyMAME you can either redo VMM with updated timings in the monitor.ini, or edit the mame.ini file with the updated horizontal timings (starting with the crt_range0 line, which for the generic_15 monitor preset defaults to crt_range0 15625-15750, 49.50-65.00, 2.000, 4.700, 8.000, 0.064, 0.192, 1.024, 0, 0, 192, 288, 448, 576 - remember that your monitor may want a different preset to begin with, and that any specific vertical.ini, machine.ini like neogeo.ini, or game.ini files will override). Calamity insists redoing VMM works best, but i find that with the spread of modes i'm using (230p at 60Hz all the way up to 600i at 50Hz) on different monitors, i still want to set the mame.ini timings afterward.