Regular Polygon with tip on the bottom

shape border rotate is the parameter that you can use to rotate a shape node. But in this case, you also need to change where labels are placed.

Unfortunately this answer will change all your code. It uses hexagon corners as reference points and also as anchors to place them one over the other. Hope it helps.

First example is not rotated and second one has a 30 degree rotation.

\documentclass[border=2mm,tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\begin{tikzpicture}[%
    point/.style={circle, radius=0.15cm, fill=#1},    
    hex/.style={draw, regular polygon, regular polygon sides=6,minimum size=3 cm}]

\node[hex] (A) {};
\node[hex, anchor=corner 4] (B) at (A.corner 2) {};
\node[hex, anchor=corner 6] (C) at (A.corner 2) {};

\foreach \i/\j/\k in {
    B/1/above, B/3/above, B/5/right,
    C/3/above, C/5/below, A/5/below}
    \node[point=black, label=\k:A] at (\i.corner \j) {};

\foreach \i/\j/\k in {
    B/2/above, B/4/above, B/6/right,
    C/2/above, C/4/below, A/4/below, A/6/right}
    \node[point=gray, label=\k:B] at (\i.corner \j) {};

\end{tikzpicture}

\begin{tikzpicture}[%
    point/.style={circle, radius=0.15cm, fill=#1},    
    hex/.style={draw, regular polygon, regular polygon sides=6,minimum size=3 cm, shape border rotate=30}]

\node[hex] (A) {};
\node[hex, anchor=corner 4] (B) at (A.corner 2) {};
\node[hex, anchor=corner 6] (C) at (A.corner 2) {};

\foreach \i/\j/\k in {
    B/1/above, B/3/left, B/5/right,
    C/3/below, C/5/below, A/5/below}
    \node[point=black, label=\k:A] at (\i.corner \j) {};

\foreach \i/\j/\k in {
    B/2/above, B/4/above, B/6/right,
    C/2/above, C/4/below, A/4/below, A/6/right}
    \node[point=gray, label=\k:B] at (\i.corner \j) {};

\end{tikzpicture}

\end{document}

enter image description here


Okay, here is an even more compact form using the shapes.geometric library of tikz:

\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
%
\begin{document}
%
\begin{tikzpicture}
    \foreach \a in {30,150,270}{
        \node[regular polygon, regular polygon sides=6, draw, minimum size=3cm, rotate=30] (\a) at (\a:{1.5cm+.2pt}) {};       
        \foreach \b/\c in {1/2,3/4,5/6}{
            \fill (\a.corner \c) circle (2.5pt) node [above] {A};
            \fill[gray] (\a.corner \b) circle (2.5pt) node[black, below] {B};
            }
        }
\end{tikzpicture}
%
\end{document}

enter image description here


Here's a simplified version for your graph.

Output

enter image description here

Code

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes}

\tikzset{
    poly/.style={draw, regular polygon, regular polygon sides=6, rotate=30, minimum size=\d cm},
    style1/.style={circle, fill=gray, label={below:B}},
    style2/.style={circle, fill=black, label={above:A}},
}

\begin{document}
\begin{tikzpicture}
\def\x{0}
\def\y{0}
\def\r{1.5}
\pgfmathsetmacro\dx{\r*cos(30)}
\pgfmathsetmacro\dy{\r*cos(30)}
\pgfmathsetmacro\d{2*\r}
\def\xc{\x+\dx}

\node[poly] (n1) at (\x,\y) {};
\node[poly] (n2) at (\xc*2,\y) {};
\node[poly] (n3) at (\xc,\y-\r*1.5) {};

% foreach for all three
\foreach \xx/\group in {1/{1,2,3},2/{1,2,3,4,5,6},3/{2,3,4,5}}{%
    \foreach \x [evaluate=\x as \angle using int(90+(60*(\x-1)))] in \group {%% 
    \pgfmathsetmacro\switch{int(mod(\x, 2)) ? "style1" : "style2"} % choose style
    \node[\switch] at (n\xx.corner \x) {};
    }
}

\end{tikzpicture}
\end{document}