In your MWE you set footskip=1cm (distance between the text area and the baseline of the footer) and footheight=2cm (height of the footer box). Therefore the footer overlaps the text area.
The first letter page uses page style empty. Header and footer on this page are positioned by pseudolength (see the KOMA-Script documentation).
There are some possibilities to get the same footer (same content and same position) on all pages, eg.
- Change the position of the footer layers for the page style used on second, third etc. page using the pseudolengths of the first page.
- Define a new layer using the pseudolengths of the first page and declare a new layer page style including this layer.
- Use page style
plain on the first letter page. Then option firstfoot=false is needed to disable the default footer of the first letter page.
- etc.
Here are two examples for the third possibility:
plain as alias of plain.letter:
\documentclass[
headheight=3cm,
%footheight=2cm,% <- remove this!!
parskip=full,
british
]{scrartcl}
\usepackage[
margin=2cm,
marginparsep=0cm,
marginparwidth=0cm,
footskip=1cm,
]{geometry}
%\usepackage{showframe}
\usepackage[%
foldmarks=false,
fromalign=right,
fromrule=off,
refline=dateleft,
fromphone=false,
fromemail=true,
backaddress=false,
subject=underlined,
pagenumber=footright,
firstfoot=false% <- added!
]{scrletter}% <- loads package scrlayer-scrpage automatically
\usepackage[T1]{fontenc}
\usepackage[en-GB]{datetime2}
\DTMlangsetup[en-GB]{ord=raise}
\usepackage{babel}
\usepackage{lipsum}% dummy text
\usepackage[pdflang=en-GB]{hyperref}
\hypersetup{
colorlinks=true,
linkcolor=black,
filecolor=magenta,
urlcolor=blue
}
\renewcommand*\pagemark{\usekomafont{pagenumber}{\thepage\ of \letterlastpage}}% <- changed
\let\letterpagemark\pagemark
\AddToHook{cmd/opening/after}{\thispagestyle{plain}}% <- added
\setkomavar{myref}[Internal #]{Testref1234}
\setkomavar{date}[Date]{\today}
\setkomavar{yourref}[Your #]{Testref5678}
\setkomavar{fromname}{A N Other}
\setkomavar{signature}{A N Other}
\renewcommand*{\raggedsignature}{\raggedright}
\setkomavar{fromaddress}{Building Number\Street\State\ZIP Code}
\setkomavar{subject}{Testing letter}
\begin{document}
\begin{letter}{A. Person\Someplace\ZIP CODE}
\opening{test}
\lipsum[1-9]\footnote{\lipsum[2]}
\closing{cheers}
\end{letter}
\end{document}
plain as alias of plain.scrheadings:
\documentclass[
headheight=3cm,
%footheight=2cm,% <- remove this!!
parskip=full,
british]{scrartcl}
\usepackage[
margin=2cm,
marginparsep=0cm,
marginparwidth=0cm,
footskip=1cm
]{geometry}
%\usepackage{showframe}
\usepackage[%
foldmarks=false,
fromalign=right,
fromrule=off,
refline=dateleft,
fromphone=false,
fromemail=true,
backaddress=false,
subject=underlined,
pagenumber=footright,
firstfoot=false% <- added!
]{scrletter}% <- loads package scrlayer-scrpage automatically
\usepackage[T1]{fontenc}
\usepackage[en-GB]{datetime2}
\DTMlangsetup[en-GB]{ord=raise}
\usepackage{babel}
\usepackage{lipsum}% dummy text
\usepackage[pdflang=en-GB]{hyperref}
\hypersetup{
colorlinks=true,
linkcolor=black,
filecolor=magenta,
urlcolor=blue
}
\renewcommand\letterpagestyle{}% <- added
\clearpairofpagestyles
\ofoot{\pagemark}% <- changed
\renewcommand*\pagemark{\usekomafont{pagenumber}{\thepage\ of \letterlastpage}}% <- changed
\let\letterpagemark\pagemark
\AddToHook{cmd/opening/after}{\thispagestyle{plain}}% <- added
\setkomavar{myref}[Internal #]{Testref1234}
\setkomavar{date}[Date]{\today}
\setkomavar{yourref}[Your #]{Testref5678}
\setkomavar{fromname}{A N Other}
\setkomavar{signature}{A N Other}
\renewcommand*{\raggedsignature}{\raggedright}
\setkomavar{fromaddress}{Building Number\Street\State\ZIP Code}
\setkomavar{subject}{Testing letter}
\begin{document}
\begin{letter}{A. Person\Someplace\ZIP CODE}
\opening{test}
\lipsum[1-9]\footnote{\lipsum[2]}
\closing{cheers}
\end{letter}
\end{document}

For additional suggestions and information see also
Update:
If the page number must not be on the same vertical position on all pages, you can use firstfoot=true (default, eg. remove firstfoot=false) and KOMA-Script variable firstfoot:
\documentclass[
headheight=3cm,
%footheight=2cm,% <- remove this!!
parskip=full,
british
]{scrartcl}
\usepackage[
margin=2cm,
marginparsep=0cm,
marginparwidth=0cm,
footskip=1cm,
]{geometry}
%\usepackage{showframe}
\usepackage[%
foldmarks=false,
fromalign=right,
fromrule=off,
refline=dateleft,
fromphone=false,
fromemail=true,
backaddress=false,
subject=underlined,
pagenumber=footright
]{scrletter}% <- loads package scrlayer-scrpage automatically
\usepackage[T1]{fontenc}
\usepackage[en-GB]{datetime2}
\DTMlangsetup[en-GB]{ord=raise}
\usepackage{babel}
\usepackage{lipsum}% dummy text
\usepackage[pdflang=en-GB]{hyperref}
\hypersetup{
colorlinks=true,
linkcolor=black,
filecolor=magenta,
urlcolor=blue
}
\renewcommand*\pagemark{\usekomafont{pagenumber}{\thepage\ of \letterlastpage}}% <- changed
\let\letterpagemark\pagemark
\setkomavar{firstfoot}{\raggedleft\pagemark}
\setkomavar{myref}[Internal #]{Testref1234}
\setkomavar{date}[Date]{\today}
\setkomavar{yourref}[Your #]{Testref5678}
\setkomavar{fromname}{A N Other}
\setkomavar{signature}{A N Other}
\renewcommand*{\raggedsignature}{\raggedright}
\setkomavar{fromaddress}{Building Number\Street\State\ZIP Code}
\setkomavar{subject}{Testing letter}
\begin{document}
\begin{letter}{A. Person\Someplace\ZIP CODE}
\opening{test}
\lipsum[1-9]\footnote{\lipsum[2]}
\closing{cheers}
\end{letter}
\end{document}
emptyon the first letter page and page styleplain.letteron the next letter pages. Note the different height of the page numbers on the first letter page than on the other pages. You can uncomment either geometry optionshowframeor packageshowframeto visualize the different position. Additionally a different page style will be used outside theletterenvironment. – esdd Mar 02 '22 at 08:29