If you would like to try a pyqgis solution in the Python console, you can use the script below.
First, paste the code block into a blank editor in the Python console. Next you will need to edit 2 lines in the script to match your point layer name and a file path pointing to your raster layer *keeping the double backslashes (I have commented the code to show you where to make the edits). Then simply click run to move your vector points to the the center of the pixel in which they are located.
Please note: Both your point layer and raster layer need to be in the same CRS. Also, I would recommend making a backup copy of your original vector shapefile just in case the results differ from what you expect (this script edits the features in place without an edit buffer).
I am not sure how familiar you are with using the QGIS Python console, so if not, the gif below should help you out. You just need to copy the code below and paste it into the editor before clicking the Run button.

Below is an image of the script pasted into the code editor showing exactly what you need to change. These two variables need to match your own point layer name exactly as it appears in the Table of Contents panel, and a valid file path to your raster layer on your file system.

Full script:
from osgeo import gdal
##### Change only the 2 lines below #####
point_layer_name = 'Random points' # Name of your point layer
raster_path = 'C:\\Users\\Path\\To\\Your\\Raster.tif' # path to your raster layer
#####
pnt_lyr = QgsProject.instance().mapLayersByName(point_layer_name)[0]
driver = gdal.GetDriverByName('GTiff')
ds = gdal.Open(raster_path)
def move_points_to_pixel_centroids(point_layer, data_set):
transform = data_set.GetGeoTransform()
x_origin = transform[0]
y_origin = transform[3]
pixel_width = transform[1]
pixel_height = -transform[5]
with edit(point_layer):
for f in point_layer.getFeatures():
point = (f.geometry().constGet().x(), f.geometry().constGet().y())
col = int((point[0] - x_origin) / pixel_width)
row = int((y_origin - point[1] ) / pixel_height)
pixel_centroid = x_origin + (pixel_width*col) + (pixel_width/2), y_origin - (pixel_height*row) - (pixel_height/2)
new_geom = QgsGeometry().fromPointXY(QgsPointXY(pixel_centroid[0], pixel_centroid[1]))
point_layer.changeGeometry(f.id(), new_geom)
move_points_to_pixel_centroids(pnt_lyr, ds)
Added a second version here in case you want to create a temporary output layer of shifted points instead of editing in-place the existing layer. All attributes will copied to the new memory layer.
from osgeo import gdal
##### Change only the 2 lines below #####
point_layer_name = 'Random points' # Name of your point layer
raster_path = 'C:\\Users\\Path\\To\\Your\\Raster.tif' # path to your raster layer
#####
pnt_lyr = QgsProject.instance().mapLayersByName(point_layer_name)[0]
driver = gdal.GetDriverByName('GTiff')
ds = gdal.Open(raster_path)
def move_points_to_pixel_centroids(point_layer, data_set):
transform = data_set.GetGeoTransform()
x_origin = transform[0]
y_origin = transform[3]
pixel_width = transform[1]
pixel_height = -transform[5]
temp_layer = QgsVectorLayer('Point?crs={}'.format(point_layer.crs().authid()), 'Shifted_points', 'memory')
temp_layer.dataProvider().addAttributes([f for f in point_layer.fields()])
temp_layer.updateFields()
with edit(temp_layer):
for f in point_layer.getFeatures():
point = (f.geometry().constGet().x(), f.geometry().constGet().y())
col = int((point[0] - x_origin) / pixel_width)
row = int((y_origin - point[1] ) / pixel_height)
pixel_centroid = x_origin + (pixel_width*col) + (pixel_width/2), y_origin - (pixel_height*row) - (pixel_height/2)
new_geom = QgsGeometry().fromPointXY(QgsPointXY(pixel_centroid[0], pixel_centroid[1]))
new_feat = QgsFeature()
new_feat.setAttributes(f.attributes())
new_feat.setGeometry(new_geom)
temp_layer.dataProvider().addFeature(new_feat)
QgsProject.instance().addMapLayer(temp_layer)
move_points_to_pixel_centroids(pnt_lyr, ds)
Acknowledgement: This answer is based partly on xunilk's answer to a previous question: Retrieve pixel value with geographic coordinate as input with gdal