I have tried to set up the example above. I hope I correctly noticed that your point layer consists of points located very close to each other. Looks like the output after using the 'Create points along lines'
tool.
I can suggest using a "Virtual Layer" through Layer > Add Layer > Add/Edit Virtual Layer...
.
Let's assume we have the following layers 'Layer_Points' and 'Layer_Lines', see image below. The data that has to be transferred from the points placed in the field "Data"
.

With the following query, it is possible to join points' attributes to lines appropriated through the beginning and the end of the line layer.
WITH start_points AS (
SELECT
l.id,
p."data"
FROM
"Layer_Lines" AS l,
"Layer_Points" AS p
GROUP BY
l.id
ORDER BY
MIN(ST_Length(ST_ShortestLine(start_point(l.geometry), p.geometry))) DESC
),
end_points AS (
SELECT
l.id,
p."data"
FROM
"Layer_Lines" AS l,
"Layer_Points" AS p
GROUP BY
l.id
ORDER BY
MIN(ST_Length(ST_ShortestLine(end_point(l.geometry), p.geometry))) DESC
)
SELECT
l.*,
sp."data" AS "start_data",
ep."data" AS "end_data"
FROM
"Layer_Lines" AS l
JOIN start_points AS sp
ON sp.id = l.id
JOIN end_points AS ep
ON ep.id = l.id
The output Virtual Layer with its Attribute table will look as following

ST_ShortestLine()
is the shortest line between two geometries. ST_StartPoint()
defines the lines' starting points for connecting with points layer, see image below.

The same principle was applied for ST_EndPoint()