Are you using any commenting plugin already?
If you use something like numtostr/comment.nvim you can do mapping like this:
vmap X y'>pgvgcc<esc>'>j
Then when you press X after selecting text it will do what you wanted.
Explanation:
y - copy selection
'> - go to end of selection
p - paste after selection
gv - go to select mode again
gcc - comment selection (this is why you need comment.nvim or similar)
<esc> - normal mode
'> - go to end of selection
j - go line below (first line of uncommented block)
yip ......................... copy current paragraph
gbip ....................... comment current paragraph
} ............................ jump to the end of current paragraph
p ............................ paste