You could use the intersections
library to precisely position the nodes and the fillbetween
library that comes with PGFPlots to fill the area between the paths. (If the latter is loaded, you don't even need to additionally load the former.)
For this to work, however, it is better to draw the paths in one go, not as two sub-paths as you do, but this can easily be achieved by reordering some values in your code.
By the way, you don't need to add center
as anchor to a coordinate since it has no shape.
\documentclass[border=10pt]{standalone}
\usepackage{pgfplots} % loads tikz
\pgfplotsset{compat=newest}
\usetikzlibrary{backgrounds}
\usepgfplotslibrary{fillbetween} % includes intersections library
\tikzset{lw/.style={line width=.04cm}}
\begin{document}
\begin{tikzpicture}[scale=.8, transform shape]
\coordinate (uplt) at (0,0);
\coordinate (strt) at ([shift={(-32:4.2)}]uplt);
\coordinate (strtd) at ([shift={(-120:.36)}]strt);
\coordinate (strtdd) at ([shift={(-148:1)}]strt);
\draw[very thick, blue, looseness=.88, name path=curveA]
(strtd) +(125:2.6) to[out=-70, in=140]
(strtd) to[out=-40, in=170] +(-24:4);
\draw[very thick, blue, looseness=.88]
(strtdd) +(125:2.6) to [out=-70, in=140]
(strtdd) to[out=-40, in=170] +(-24:4.4);
\draw[lw, red, looseness=.8, name path=curveB]
([shift={(45:.4)}]strt) +(160:3.2) to[out=-6, in=140]
([shift={(45:.4)}]strt) to[out=-40, in=94] +(-65:4.2);
\draw[lw, red, looseness=.8]
([shift={(36:.86)}]strt) +(160:3.2) to[out=-6, in=140]
([shift={(36:.86)}]strt) to[out=-40, in=94] +(-65:4.2);
\path[name intersections={of=curveA and curveB}]
(intersection-1) node[circle, black, fill=black, scale=0.8] (a) {}
(intersection-2) node[circle, black, fill=black, scale=0.8] (b) {};
\begin{scope}[on background layer]
\fill[green, intersection segments={of=curveA and curveB, sequence={R2 -- L2}}]
-- cycle;
\end{scope}
\end{tikzpicture}
\end{document}

Filling the area between the other two curves needs a small tweak. Note that they seem not to intersect at the upper left coordinate which is why you cannot place a node using intersections
there. Maybe you need to adjust the curves a bit.
If you wonder how to use the intersection segments
and sequence
options, have a look at the PGFPlots manual. Chapter 5.7. (in version 1.18.1 of the manual) discusses the fillbetween
library.
\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{backgrounds}
\usepgfplotslibrary{fillbetween}
\tikzset{lw/.style={line width=.04cm}}
\begin{document}
\begin{tikzpicture}[scale=.8, transform shape]
\coordinate (uplt) at (0,0);
\coordinate (strt) at ([shift={(-32:4.2)}]uplt);
\coordinate (strtd) at ([shift={(-120:.36)}]strt);
\coordinate (strtdd) at ([shift={(-148:1)}]strt);
\draw[very thick, blue, looseness=.88, name path=curveA]
(strtd) +(125:2.6) to[out=-70, in=140]
(strtd) to[out=-40, in=170] +(-24:4);
\draw[very thick, blue, looseness=.88, name path=curveB]
(strtdd.center) +(125:2.6) to [out=-70, in=140]
(strtdd.center) to[out=-40, in=170] +(-24:4.4);
\draw[lw, red, looseness=.8, name path=curveC]
([shift={(45:.4)}]strt.center) +(160:3.2) to[out=-6, in=140]
([shift={(45:.4)}]strt.center) to[out=-40, in=94] +(-65:4.2);
\draw[lw, red, looseness=.8, name path=curveD]
([shift={(36:.86)}]strt.center) +(160:3.2) to[out=-6, in=140]
([shift={(36:.86)}]strt.center) to[out=-40, in=94] +(-65:4.2);
\path[name intersections={of=curveA and curveC}]
(intersection-1) node[circle, black, fill=black, scale=0.8] (a) {}
(intersection-2) node[circle, black, fill=black, scale=0.8] (b) {};
\begin{scope}[on background layer]
\fill[yellow, intersection segments={of=curveB and curveD, sequence={R1 -- L1[reverse]}}] -- cycle;
\fill[green, intersection segments={of=curveA and curveC, sequence={R2 -- L2}}] -- cycle;
\end{scope}
\end{tikzpicture}
\end{document}
