I have no idea where are you stuck... And why... But this could be done in 2 simple steps:
1) insert data into Y table based on select from X
2) update X
CREATE PROCEDURE usp_UpdateAndAudit
@variable1 type,
@variable2 type,
.....
@variableN type
AS
BEGIN
INSERT INTO Y (DestField1, DestField2,..., DestFieldN)
SELECT SrcField1, SrcField2,..., SrcFieldN
FROM Y
WHERE <condition>
UPDATE X
SET Field1 = @variable1
SET Field2 = @variable1
SET FieldN = @variableN
WHERE <condition>
END