This is what I have found so far for John and Ann:
John McGregor (the oldest records often spell the name as McGrigor): b.25 Jan 1817, Knockbain, d.8 April 1904, Resolis, the son of John McGregor and Margaret Munro.
He married Ann Ross 15 September 1842, in Inverness. (Thank you Joe!) (Inverness is a short ferry ride from North Kessock, where I believe John's parents and siblings were living. There is a family with names that fit, in the various censuses).
Ann was born about 1815 (based on her death certificate. I have not found a birth or baptismal record for her), and died 23 February 1899, Resolis. She was the daughter of Isabella Bain and Donald Ross.
David McGregor lived with his widowed father at Fearn Cottage, Cullicudden and he was a blacksmith as well. He married Harriet McDonald on 4 June 1909, Resolis, and died 22 August 1933, Resolis.
Donald McGregor moved to the Shetland Isles, then to Glasgow, finally retiring in Kilmarnock, where he died 26 Aug 1929. His wife, Elizabeth Sinclair, d. 17 September 1926.
The challenge now is to keep tracing the generations back.
Isabella Bain's parents were Donald Bain and Janet Davidson, but I have no definitive info on who her husband's parents were.
John McGregor's maternal grandparents were John Munro and Isabella Davidson, but I haven't found his father's parents. With a name like John McGregor, there are just too many options.
Hope this helps.
Sheila