SDK 4.09 + broke my GPS and timer code

Good morning, 

Tried to update to a newer SDK, and I have found that 4.13, 4.14, 4.15 I have lost GPS data sim in the watch sim.

4.16, 4.17, 4.2  are throwing errors for working apps that I have not seen before, any help in solving my programming deficiencies is greatly appreciated.

I've had to go back to version   4.12

Are there issues with the SDK's? or my code?

Invalid '$.Toybox.Lang.Method(info as Any) as Any' passed as parameter 2 of type '$.Toybox.Lang.Method(loc as $.Toybox.Position.Info) as Void'.

   function onStart(state) {                                       // Needs Position and System
        Position.enableLocationEvents(Position.LOCATION_CONTINUOUS  , method(:gpsgetM));      ///  This line now causing an error with 4.16 onwards.... maybe with 4.13 onwards
    }
    function gpsgetM(info) {                            
        gpsV = info;             
    }
//
Invalid '$.Toybox.Lang.Method() as Any' passed as parameter 1 of type '$.Toybox.Lang.Method() as Void'.   
    $.timerTwo = new Timer.Timer();
    $.timerTwo.start(method(:TimerTwo),50,true);                                                                           ////  This line now causing error with 4.16 onwards
//
Invalid '$.Toybox.Lang.Method() as Any' passed as parameter 1 of type '$.Toybox.Lang.Method() as Void'.
 
    function onLayout(dc) {
        dataTimer = new Timer.Timer();
        dataTimer.start(method(:timerCallback), 1000, true);                                              //// This line now causing error with 4.16 onwards.
//
I can add session recording, and vibrate to the list of broken things also.
            session = ActivityRecording.createSession({                     //  Create session is no longer valid?
                :name=>"SPORT_KITESURFING",
                :sport=>ActivityRecording.SPORT_GENERIC,
                :subSport=>ActivityRecording.SUB_SPORT_GENERIC
            });
Gives: a class method was invoked on a Session that is no longer valid
//
        if (Attention has :vibrate) {
          vibeStart =
            [
                new Attention.VibeProfile(100, 500),
                new Attention.VibeProfile(0, 500),
            ];
            if(vibeStart != null){
                  Attention.vibrate(vibeStart);              // Says it should not be an array, but it is supposed to be an array ? 
            }