Dear Andylaug,
I have written a VBA code for your problem as follow:
Option Explicit
Sub SetOrigin()
Dim SOss As AcadSelectionSet
Dim SOobj As AcadEntity
Dim SOXMin As Double
Dim SOYMin As Double
Dim Minpt As Variant, Maxpt As Variant
Dim SOorig(0 To 2) As Double
Dim xAxis(0 To 2) As Double
Dim yAxis(0 To 2) As Double
Dim newUCS As AcadUCS
Randomize Timer
Set SOss = ThisDrawing.SelectionSets.Add(Rnd(Timer))
SOss.SelectOnScreen
ThisDrawing.SendCommand "UCS W "
SOss.Item(0).GetBoundingBox Minpt, Maxpt
SOXMin = Minpt(0)
SOYMin = Minpt(1)
For Each SOobj In SOss
SOobj.GetBoundingBox Minpt, Maxpt
If SOXMin > Minpt(0) Then
SOXMin = Minpt(0)
End If
If SOYMin > Minpt(1) Then
SOYMin = Minpt(1)
End If
Next SOobj
SOorig(0) = SOXMin
SOorig(1) = SOYMin
SOorig(2) = Minpt(2)
xAxis(0) = SOXMin + 1
xAxis(1) = SOYMin
xAxis(2) = Minpt(2)
yAxis(0) = SOXMin
yAxis(1) = SOYMin + 1
yAxis(2) = Minpt(2)
Set newUCS = ThisDrawing. _
UserCoordinateSystems.Add _
(SOorig, xAxis, yAxis, "0"

ThisDrawing.ActiveUCS = newUCS
End Sub
You can copy and paste the code into a VBA module an just run the SetOrigin subroutine. The routine requests you to select some objects and it sets the UCS on the lower left corner of selected objects.
The subroutine can be run using a toolbutton.

Farzad