To bring this into SWAT+: each of these areas would need a different grid code number in the land cover input raster, you would need to make a differently named entry for each one in the 'plant' parameter table, and then your land cover lookup table would need to link each to these different entries in the plant parameter table. In this example, if its all wheat, and you are happy with the default wheat parameters in SWAT+, you can just copy the wheat parameter row and paste it three times at the end of the table and give these new names and codes like wheat01, wheat02, wheat03.
A hitch in this approach could come in automated calibration, if you are doing that. In this process, each wheat cover "subtype" (wheat01, wheat02, wheat03 for the areas irrigated by reservoirs 1,2,&3) would be treated as if it was an independent cover type. This means their parameter values may be changed in different ways to one another in calibration, whereas you probably want their vegetation parameters to be consistent across the three as they are all wheat... This may take some manual calibration intervention to resolve - i.e. setting the wheat01,wheat02,wheat03 parameters to be the same in the end.
Also if you have many many reservoirs, there is still work to be done on linking each HRU to the right reservoir. Doing this in the text files rather than the SWAT+ Editor interface would likely faster and you could automate the process using an R or Python code. If you modify the text files outside of the Editor interface you cannot "write tables" in the Editor before running the model (if you run it from the Editor) because this will actually undo the changes you've made.