Something like this (caveat - I haven't been able to test this properly so there might be the odd typo - used a temp table to mimic your query
dets
)
WITH dets as
(
select
sc.SubmissionPkId
, sn.Name
, rs.Label
, rs.Value
from
CanvasResponse rs
inner join CanvasScreen sn on rs.ScreenPkId = sn.PkId
inner join CanvasSection sc on sn.SectionPkId = sc.PkId
where
sn.Name = 'Seller Details'
or sn.Name = 'Property Details'
and Label in
(
'OwnerName',
'OwnetEmail',
'OwnerContactNumber',
'Price',
'StreetNumber',
'StreetName',
'Suburb',
'Town'
)
)
SELECT *
FROM (
SELECT
[SubmissionPkId], [Label], [Value]
FROM dets
) as s
PIVOT
(
MAX([Value])
FOR [Label] IN (OwnerName, OwnetEmail, OwnerContactNumber, OwnerID, Town, Suburb, StreetName, StreetNumber )
)AS p
Give it a go and let me know where I got it wrong!