The attached is not the total solution … but is an indicative start:
I.e. ALWAYS do your geo in a flat Surface and then morph results to some target Surface (if the target is BrepFace then you’ll need some extra things [have in mind that R Morph Methods work targeting the underlying Surface]).