Per REST, the URI is to a resource so by that definition, the URI returned in the Location header should not have a version.
That doesn't quite follow.
a URI is a resource identifier; it identifies a resource, where "any information that can be named can be a resource (Fielding, 2000).
In general, the representation of a resource is a function of time; and a response to a GET request is expected to return the latest version of that resource.
But, if that's not suitable, then it is fine to instead model a different resource that has a representation which is not a function of time.
/705604c9-2e1f-43c8-953e-7659f44f5b32 <-- "version 0"
/bbd02ea3-96d8-41dd-ac70-4748bd3e93ac <-- "version 1"
/86d09182-5002-4568-8a4a-352a75daa40c <-- "version 2"
/32a856ef-4894-49f4-8e27-ab3ab41de71f <-- "latest"
Of course, these identifiers are not particularly helpful to a human trying to recognize them, so you'd probably want to use a friendlier spelling convention
/foo/history/0
/foo/history/1
/foo/history/2
/foo
For API versions, your humans will probably be happier with different prioritization of the path segments
/api/v0/foo
/api/v1/foo
/api/v2/foo
/api/foo
In contexts where backwards compatibility is important, you want to be really careful about changing the meaning of a resource.
In cases where the meanings are constant, but the representations are changing over time, then you might use content negotiation (either pro-active or reactive) to help clients to retrieve a representation with the right schema. So if someone tries to GET the resource, but doesn't describe one of your supported schema in the Content-Type header, then maybe you send them an 300 Multiple Choices response, and go from there.
(At this point, we're starting to enter the realm of bespoke clients, which is a bit outside the scope of REST, which itself focuses on general purpose components.)