Would it not make sense just to pass the value by reference?
public void Register(string desc, ref float val, float minimum,
         float maximum, float stepsize) {...}
Of course, using public variables (fields) is a bad idea too... it would work like so:
ML.Register("Radius", ref lBeacons[i].Radius, 0.0f, 200.0f, 10.0f);
But it won't work if you make Radius a property - so don't do this. Consider passing the beacon (or similar) itself, or some other object-based (or maybe event-based) mechanism.
something like:
ML.Register("Radius", lBeacons[i], 0.0f, 200.0f, 10.0f);
with:
private Beacon beacon;
public void Register(string desc, Beacon beacon, float minimum,
         float maximum, float stepsize) {
    this.beacon = beacon;
}
void Foo() {
    beacon.Radius++; // etc
}
Here we have a reference to the Beacon object, which doesn't have the unsafe issues of pointers. If you don't want to expose the Beacon directly, consider using an interface.