This is more a comment with a picture.
Looking at the Latin side of the font, you may need to add in other glyphs. newunicodechar
is probably the best way to do that.
Depending on what you need to do, and what you are used to, and how much (if any) keyboard switching is involved, you can also define commands in Bangla, like \let\ৡ\section
and
\let\হ\tableofcontents
, and then use them as normal, \হ
and \ৡ{কাকীকৌ}
.
Note that SolaimanLipi font has a bold version.
I tried an experiment, using random letters:

MWE
\documentclass[12pt]{article}
\usepackage{xcolor}
\pagecolor{red!3}
\usepackage{fontspec}
\setmainfont[Script=Bengali]{SolaimanLipi}
\newfontfamily\fpunct{Noto Serif}
\newfontfamily\fdev{Noto Serif Devanagari}
\usepackage{polyglossia}
\setdefaultlanguage[numerals=Bengali,
changecounternumbering=true]{bengali}
\setotherlanguages{english}
\newcommand\bqql{{\fpunct “\thinspace}}
\newcommand\bqqr{{\fpunct\thinspace ”}}
\newcommand\bql{{\fpunct ‘\thinspace}}
\newcommand\bqr{{\fpunct\thinspace ’}}
\newcommand\bc{{\fpunct ,}}
\newcommand\bend{{\fpunct\textendash\ }}
\newcommand\bemd{{\fpunct\textemdash\ }}
\newcommand\bdanda{{\fdev ।\thinspace}}
\newcommand\bddanda{{\fdev ॥\thinspace}}
\let\ৡ\section
\let\হ\tableofcontents
\let\ন\bend
\let\ম\bemd
\let\ড\bdanda
\let\ডড\bddanda
\begin{document}
{\fpunct\small Just to try out the mechanics of the process:}
\হ
\vspace{1ex}
\hrule
\vspace{1ex}
\ৡ{রষেধৗস}
অকথষোধৈঘৄঙী \ন অকথষো \bqql ধৈঘৄঙী\bqqr\ অকথষো \ম\bql ধৈ\bqr\ \ম ঘৄঙী \ড
\noindent\textbf{অকথষোধৈঘৄঙী \ন অকথষো \bqql ধৈঘৄঙী\bqqr\ অকথষো \ম\bql ধৈ\bqr\ \ম ঘৄঙী \ড}
\ৡ{কাকীকৌ}
কাকীকৌ \ড \\
কাকীকৌ \ডড
\end{document}
Correction:
Package commands looking for \section
and so on, for example like in titletoc
, won't find \ৡ
, so one way is to patch everything, or, alternatively, just keep using \section
and swap keyboards as usual.
For example, when adding shading to section numbers in the table of contents:

MWE2:
\documentclass[12pt]{article}
\usepackage{xcolor}
\pagecolor{red!3}
\usepackage{fontspec}
\setmainfont[Script=Bengali]{SolaimanLipi}
\newfontfamily\fpunct{Noto Serif}
\newfontfamily\fdev{Noto Serif Devanagari}
\usepackage{polyglossia}
\setdefaultlanguage[numerals=Bengali,
changecounternumbering=true]{bengali}
\setotherlanguages{english}
\newcommand\bqql{{\fpunct “\thinspace}}
\newcommand\bqqr{{\fpunct\thinspace ”}}
\newcommand\bql{{\fpunct ‘\thinspace}}
\newcommand\bqr{{\fpunct\thinspace ’}}
\newcommand\bc{{\fpunct ,}}
\newcommand\bend{{\fpunct\textendash\ }}
\newcommand\bemd{{\fpunct\textemdash\ }}
\newcommand\bdanda{{\fdev ।\thinspace}}
\newcommand\bddanda{{\fdev ॥\thinspace}}
\let\ৡ\section
\let\হ\tableofcontents
\let\ন\bend
\let\ম\bemd
\let\ড\bdanda
\let\ডড\bddanda
\usepackage{tikz}
\usetikzlibrary{shadows.blur}
\newcommand\bframe[1]{%
\begin{tikzpicture}
\node [shade,
top color=red!40,
bottom color=violet!5,
rounded corners=2pt,
blur shadow={shadow blur steps=5,violet}
] {#1};
\end{tikzpicture}%
}
\usepackage{titlesec}
\titleformat{\section}{\large}{\bframe{\thesection}}{0.75em}{}
\usepackage{titletoc}
\titlecontents{section}
[1em]%left
{}%abovecode
{\bframe{\thecontentslabel}\hspace{0.75em}}%numbered format
{\huge}%numberless format
{\titlerule*[1pc]{.}\contentspage} % page number
[]%belowcode
\begin{document}
\হ
\vspace{1ex}
\hrule
\vspace{1ex}
\section{রষেধৗস}
অকথষোধৈঘৄঙী \ন অকথষো \bqql ধৈঘৄঙী\bqqr\ অকথষো \ম\bql ধৈ\bqr\ \ম ঘৄঙী \ড
\noindent\textbf{অকথষোধৈঘৄঙী \ন অকথষো \bqql ধৈঘৄঙী\bqqr\ অকথষো \ম\bql
\begin{tikzpicture}
\node [shade,
top color=blue!40,
bottom color=blue!5,
rounded corners=2pt,
blur shadow={shadow blur steps=5}
] {ধৈ};
\end{tikzpicture}
\bqr\ \ম ঘৄঙী \ড}
\section{কাকীকৌ}
কাকীকৌ \ড \\
কাকীকৌ \ডড
\end{document}
\defaultfontfeatures{Ligatures=TeX}
before loading the Bengali fonts. – egreg Nov 7 '19 at 14:13